{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "      <th>price_bathrooms</th>\n",
       "      <th>price_bedrooms</th>\n",
       "      <th>room_diff</th>\n",
       "      <th>room_num</th>\n",
       "      <th>Year</th>\n",
       "      <th>Month</th>\n",
       "      <th>Day</th>\n",
       "      <th>...</th>\n",
       "      <th>walk</th>\n",
       "      <th>walls</th>\n",
       "      <th>war</th>\n",
       "      <th>washer</th>\n",
       "      <th>water</th>\n",
       "      <th>wheelchair</th>\n",
       "      <th>wifi</th>\n",
       "      <th>windows</th>\n",
       "      <th>work</th>\n",
       "      <th>interest_level</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.5</td>\n",
       "      <td>3</td>\n",
       "      <td>3000</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>750.000000</td>\n",
       "      <td>-1.5</td>\n",
       "      <td>4.5</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>24</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>5465</td>\n",
       "      <td>2732.5</td>\n",
       "      <td>1821.666667</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>12</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2850</td>\n",
       "      <td>1425.0</td>\n",
       "      <td>1425.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>3275</td>\n",
       "      <td>1637.5</td>\n",
       "      <td>1637.500000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>18</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>4</td>\n",
       "      <td>3350</td>\n",
       "      <td>1675.0</td>\n",
       "      <td>670.000000</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 228 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   bathrooms  bedrooms  price  price_bathrooms  price_bedrooms  room_diff  \\\n",
       "0        1.5         3   3000           1200.0      750.000000       -1.5   \n",
       "1        1.0         2   5465           2732.5     1821.666667       -1.0   \n",
       "2        1.0         1   2850           1425.0     1425.000000        0.0   \n",
       "3        1.0         1   3275           1637.5     1637.500000        0.0   \n",
       "4        1.0         4   3350           1675.0      670.000000       -3.0   \n",
       "\n",
       "   room_num  Year  Month  Day       ...        walk  walls  war  washer  \\\n",
       "0       4.5  2016      6   24       ...           0      0    0       0   \n",
       "1       3.0  2016      6   12       ...           0      0    0       0   \n",
       "2       2.0  2016      4   17       ...           0      0    0       0   \n",
       "3       2.0  2016      4   18       ...           0      0    0       0   \n",
       "4       5.0  2016      4   28       ...           0      0    1       0   \n",
       "\n",
       "   water  wheelchair  wifi  windows  work  interest_level  \n",
       "0      0           0     0        0     0               1  \n",
       "1      0           0     0        0     0               2  \n",
       "2      0           0     0        0     0               0  \n",
       "3      0           0     0        0     0               2  \n",
       "4      0           0     0        0     0               2  \n",
       "\n",
       "[5 rows x 228 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath +\"RentListingInquries_FE_train.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = train['interest_level']\n",
    "X_train = train.drop([\"interest_level\"], axis=1)\n",
    "X_train = np.array(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def modelfit(alg, X_train, y_train, useTrainCV=True, cv_folds=None, early_stopping_rounds=100):\n",
    "    \n",
    "    if useTrainCV:\n",
    "        xgb_param = alg.get_xgb_params()\n",
    "        xgb_param['num_class'] = 3\n",
    "        \n",
    "        xgtrain = xgb.DMatrix(X_train, label = y_train)\n",
    "        \n",
    "        cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], folds =cv_folds,\n",
    "                         metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "        \n",
    "        n_estimators = cvresult.shape[0]\n",
    "        alg.set_params(n_estimators = n_estimators)\n",
    "        \n",
    "        print(cvresult)\n",
    "        #result = pd.DataFrame(cvresult)   #cv缺省返回结果为DataFrame\n",
    "        #result.to_csv('my_preds.csv', index_label = 'n_estimators')\n",
    "        cvresult.to_csv('my_preds4_2_3_699.csv', index_label = 'n_estimators')\n",
    "        \n",
    "        # plot\n",
    "        test_means = cvresult['test-mlogloss-mean']\n",
    "        test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "        train_means = cvresult['train-mlogloss-mean']\n",
    "        train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "        x_axis = range(0, n_estimators)\n",
    "        pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "        pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "        pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "        pyplot.xlabel( 'n_estimators' )\n",
    "        pyplot.ylabel( 'Log Loss' )\n",
    "        pyplot.savefig( 'n_estimators4_2_3_699.png' )\n",
    "    \n",
    "    #Fit the algorithm on the data\n",
    "    alg.fit(X_train, y_train, eval_metric='mlogloss')\n",
    "        \n",
    "    #Predict training set:\n",
    "    train_predprob = alg.predict_proba(X_train)\n",
    "    logloss = log_loss(y_train, train_predprob)\n",
    "\n",
    "        \n",
    "    #Print model report:\n",
    "    print (\"logloss of train :\" )\n",
    "    print (logloss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     test-mlogloss-mean  test-mlogloss-std  train-mlogloss-mean  \\\n",
      "0              1.039976           0.000231             1.039239   \n",
      "1              0.990323           0.000217             0.989090   \n",
      "2              0.947896           0.000637             0.946200   \n",
      "3              0.911813           0.000609             0.909667   \n",
      "4              0.880946           0.000992             0.878194   \n",
      "5              0.853610           0.001001             0.850433   \n",
      "6              0.829860           0.001219             0.826079   \n",
      "7              0.808824           0.001123             0.804426   \n",
      "8              0.790475           0.000918             0.785470   \n",
      "9              0.774209           0.000996             0.768680   \n",
      "10             0.759671           0.001017             0.753572   \n",
      "11             0.746792           0.001187             0.740123   \n",
      "12             0.735339           0.000987             0.728260   \n",
      "13             0.724982           0.001070             0.717514   \n",
      "14             0.715801           0.001066             0.707864   \n",
      "15             0.707553           0.001199             0.699175   \n",
      "16             0.700479           0.001254             0.691404   \n",
      "17             0.694008           0.001351             0.684411   \n",
      "18             0.688099           0.001512             0.677868   \n",
      "19             0.682698           0.001620             0.671888   \n",
      "20             0.677849           0.001617             0.666585   \n",
      "21             0.673526           0.001748             0.661880   \n",
      "22             0.669550           0.001527             0.657450   \n",
      "23             0.666015           0.001465             0.653523   \n",
      "24             0.662327           0.001484             0.649358   \n",
      "25             0.659210           0.001538             0.645822   \n",
      "26             0.656408           0.001688             0.642288   \n",
      "27             0.653915           0.001887             0.639116   \n",
      "28             0.651397           0.002002             0.636151   \n",
      "29             0.649014           0.002129             0.633279   \n",
      "..                  ...                ...                  ...   \n",
      "256            0.591834           0.002485             0.490236   \n",
      "257            0.591782           0.002542             0.489900   \n",
      "258            0.591848           0.002526             0.489611   \n",
      "259            0.591819           0.002490             0.489253   \n",
      "260            0.591841           0.002466             0.488930   \n",
      "261            0.591781           0.002489             0.488620   \n",
      "262            0.591837           0.002594             0.488316   \n",
      "263            0.591823           0.002635             0.487988   \n",
      "264            0.591781           0.002560             0.487662   \n",
      "265            0.591720           0.002621             0.487353   \n",
      "266            0.591700           0.002652             0.487056   \n",
      "267            0.591747           0.002605             0.486751   \n",
      "268            0.591748           0.002550             0.486327   \n",
      "269            0.591748           0.002608             0.486001   \n",
      "270            0.591793           0.002649             0.485654   \n",
      "271            0.591693           0.002632             0.485298   \n",
      "272            0.591626           0.002680             0.484910   \n",
      "273            0.591551           0.002721             0.484540   \n",
      "274            0.591466           0.002710             0.484206   \n",
      "275            0.591459           0.002745             0.483868   \n",
      "276            0.591449           0.002743             0.483553   \n",
      "277            0.591430           0.002824             0.483234   \n",
      "278            0.591447           0.002752             0.482933   \n",
      "279            0.591460           0.002711             0.482579   \n",
      "280            0.591408           0.002797             0.482219   \n",
      "281            0.591388           0.002829             0.481867   \n",
      "282            0.591393           0.002808             0.481523   \n",
      "283            0.591421           0.002843             0.481230   \n",
      "284            0.591400           0.002779             0.480895   \n",
      "285            0.591384           0.002764             0.480609   \n",
      "\n",
      "     train-mlogloss-std  \n",
      "0              0.000377  \n",
      "1              0.000395  \n",
      "2              0.000252  \n",
      "3              0.000124  \n",
      "4              0.000463  \n",
      "5              0.000500  \n",
      "6              0.000517  \n",
      "7              0.000191  \n",
      "8              0.000416  \n",
      "9              0.000441  \n",
      "10             0.000646  \n",
      "11             0.000728  \n",
      "12             0.000784  \n",
      "13             0.000792  \n",
      "14             0.000904  \n",
      "15             0.001030  \n",
      "16             0.001033  \n",
      "17             0.001312  \n",
      "18             0.001212  \n",
      "19             0.001089  \n",
      "20             0.001051  \n",
      "21             0.000994  \n",
      "22             0.001151  \n",
      "23             0.001272  \n",
      "24             0.001411  \n",
      "25             0.001411  \n",
      "26             0.001159  \n",
      "27             0.001101  \n",
      "28             0.000917  \n",
      "29             0.000957  \n",
      "..                  ...  \n",
      "256            0.000940  \n",
      "257            0.000920  \n",
      "258            0.000934  \n",
      "259            0.001015  \n",
      "260            0.001061  \n",
      "261            0.000984  \n",
      "262            0.001021  \n",
      "263            0.000977  \n",
      "264            0.001008  \n",
      "265            0.000935  \n",
      "266            0.000954  \n",
      "267            0.000960  \n",
      "268            0.000984  \n",
      "269            0.000934  \n",
      "270            0.000927  \n",
      "271            0.000945  \n",
      "272            0.000888  \n",
      "273            0.000817  \n",
      "274            0.000815  \n",
      "275            0.000852  \n",
      "276            0.000877  \n",
      "277            0.000781  \n",
      "278            0.000756  \n",
      "279            0.000859  \n",
      "280            0.000839  \n",
      "281            0.000805  \n",
      "282            0.000825  \n",
      "283            0.000779  \n",
      "284            0.000765  \n",
      "285            0.000772  \n",
      "\n",
      "[286 rows x 4 columns]\n",
      "logloss of train :\n",
      "0.504029889825\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEXCAYAAABCjVgAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XmcHHWd//HXp3uuTOZKMpP7hhAIyBlO5VBEAXe5ZYmAgq6s7rJ4rLq4y89l2fViXXc9UEQF1gsWxXVRQVRuWIIJNwECIefkvudK5uj5/P74Vk86k55Mz2R6amb6/Xw8Kl3Ht6s+1TXpT3+/VfUtc3dEREQAEnEHICIiQ4eSgoiIdFFSEBGRLkoKIiLSRUlBRES6KCmIiEgXJQWRDGb2D2b2g7jjEImLksIwY2YVZrbSzD6QMa/SzFab2SUZ8+ab2W/MbLuZ7TCzV83si2Y2Jlp+lZmlzKwpGpab2cfzHPsZZlafz230RbZ43P1L7v6XedreSjN7dz7WnQ+DdbyG2+cy0ikpDDPu3gRcA3zDzOqi2TcDi939FwBmdgrwKPAUcKi71wBnAx3AURmre9rdK9y9ArgEuNnMjhmcPZG+MLOiuGOQAuHuGobhANwJ3AWcAWwFJmUsexL4Vi/vvwp4stu8PwEfyJg+D1gC7CAkmcMylh0WzdsRlTkvY9m5wKtAI7AW+AwwGtgFdAJN0TC5h/26Bfht9P5ngINy+DwOBf4AbAOWApf2Jx7gRuAn0ftmAg5cDawBtgMfA44HXor2/dsZ2zkIeDg6HluAnwI10bIfR9vaFW3rczl8xiuBv4+21QoURdNro31ZCpyZ5bM4CdgAJDPmXQi8FI2fACwGGoCNwNd7+EzPAOp7WFYN/AjYDKwCbgAS0bIk8O/RZ7ACuDb6HIt6WNdK4N09LPsosCw6rvel/2YAA/4D2ATsjD6jI3o63nH/fx1OQ+wBaOjngYMxwProP97VGfNHAyngjF7efxUZSSH6otsBHBJNHwI0A2cBxcDnov+cJdH0MuAfoul3Rf8B50bvXQ+cmhHnsdF4j18yGXHcGX0BnBB9Cf4UuLuX94wmfGlfHb3n2OhzObyv8ZA9KdwKlAHvAXYDvwLGA1OiL6XTo/IHR59XKVAHPA78Z8a69/ry299nnFH+BWAaMAqYG+3n5Iz4siZM4C3grIzpnwPXR+NPA1dG4xXAST2so8fjRUgI/wtURnG8AXwkWvYxwpfy1Ojz/iP9SArR39WW6HiWAt8CHo+WvRd4FqghJIjDiH4Y9XS8NeQ2qPlomHL37YRfmOXALzMWjSE0C25IzzCzm6PzCs1mdkNG2ZOi+U2EWsKPgTejZX8B/Nbd/+Du7cDXCF9MpxB+iVYAX3H3Nnd/GPgNsCB6bzswz8yq3H27uz/Xx937pbv/yd07CEnh6F7K/xmw0t3vcPeOaHv3EprEBiKef3H33e7+e8KX+F3uvsnd1wJPAMcAuPuy6PNqdffNwNeB0/ez3v19xmnfdPc17r6LkOxLo30pdveV7v5WD+u+i+h4mFkl4dfzXRmfx8FmVuvuTe6+sC8fhpklo9g/7+6N7r6SUDO4MipyKfANd6+P/k6/0pf1Z7gcuN3dn3P3VuDzwMlmNjPah0pCDdHc/TV3X5+xfwdyvAuaksIwZWZXEH6h/RH4asai7YRmiknpGe7+OQ/nFf6H8Es6baG713g4pzAROBz4UrRsMqFZIL2OTsKv1CnRsjXRvLRV0TKAiwlfQqvM7DEzO7mPu7chY7yFkID2ZwZwYpTgdpjZDsIXysQBimdjxviuLNMVAGY23szuNrO1ZtYA/ASo3c969/cZp63JWL4M+CShNrMp2tbkHtb9M+AiMysFLgKec/f0tj5CqKW8bmaLzOzP9hNjNrWEGuKqjHmZx39yZtzdxvui++fTRGiamxL9EPk2oalxo5ndZmZVUdEDPd4FTUlhGDKz8YT21I8CfwVcamanAbh7M6Ed/qK+rNPdNxJ+Xf95NGsd4cs2vU0jNGOsjZZNM7PMv5/p0TLcfZG7n09oYvkVcE96M32JqQ/WAI9FCS49VLj7xwc5ni9H6zzS3auAKwhNG2ndt7e/zzjre9z9Z+7+juh9zt4/CDLLvUr4Qj0H+AAhSaSXvenuCwifx1eBX5jZ6Nx3ky2EX+MzMuZ1HX9C883UjGXT+rDuTN0/n9HAOPb8nX3T3Y8j/Jg5BPhsNL+n4y05UFIYnr4N/MrdH4mqzJ8Dvh/9KiSa/rCZXR8lEMxsKjCrpxWa2TjCycgl0ax7gPeZ2ZlmVgz8HeFk5/8Rkk4z8DkzKzazMwjJ5G4zKzGzy82sOmoSaSA0e0D4hT3OzKoH6HNI+w1wiJldGcVTbGbHm9lhgxxPJeEk8g4zm0L0JZVhIzA7Y3p/n/E+zGyumb0rOs67CbWUVLaykZ8B1wGnEc4ppNdzhZnVRTWTHdHsHtdjZmWZA6Emeg/wxehy6BnApwk1o/R+fcLMpphZDeHkeG+Ku22nKIr/ajM7OtrnLwHPuPvK6PieGH1uzdHnkerleEsu4j6poaFvA3AB4RdUTbf5DwFfzJg+Ebif8J9+B/AK8EVgXLT8KsJ/lvSVN5sIbc7jM9ZxIeGE4U7gMaITt9Gyw6N5O6MyF0bzS4DfEZqxGoBFwDsy3nc7oQlgBz1fffSvGdNn0MvJ6ajcXMIVS5uj9T9MOBfRp3jIfqK5KKN8PRkn8QlfhDdkfCbPRp/nC4Qv+fqMsucDq6NtfSaHz3gle5+YPpJw7qeRcDL+N9k+w4zy0wlf4L/tNv8n0fFuIvwIuKCH958R7X/34WDCuaufRJ/3GuAL7Ln6qIhQk91KuProU4SahfWwnZVZtvGv0bKPEU6ap/d3ajT/TMIVR03sudKrorfjraH3waIPWEQkL8zsHOBWd5/Ra2GJnZqPRGRAmdkoMzvXzIqiZrR/IlzkIMOAagoyLJjZqcAD2ZZ5uHpKhggzKyc0hR1KOO/xW+AT7t4Qa2CSEyUFERHpouYjERHpMuw62aqtrfWZM2fGHYaIyLDy7LPPbnH3ut7KDbukMHPmTBYvXhx3GCIiw4qZreq9lJqPREQkg5KCiIh0UVIQEZEuSgoiItJFSUFERLooKYiISBclBRER6VIwSWH5hu088MxLqFsPEZGeFUxS+MMPb+CcB06lpaU57lBERIasgkkKxx4yE4CmnVvjDUREZAgrmKRQVB6euNjcsD3mSEREhq4CSgpjAGhtVE1BRKQnBZMUyiprAGht2tFLSRGRwlU4SaFiLADtLWo+EhHpScEkhfKqkBQ6mnfGHImIyNBVMElhdFU4p9C5W0lBRKQnBZMUykZXk3IDJQURkR4VTFLAjCYbjbU2xh2JiMiQVThJAWi20RS1NcQdhojIkJW3pGBmt5vZJjN7pYflZmbfNLNlZvaSmR2br1jSdidHU9ShmoKISE/yWVO4Ezh7P8vPAeZEwzXAd/MYCwC7k5WUKimIiPQob0nB3R8Htu2nyPnAjzxYCNSY2aR8xQPQXlRBWUod4omI9CTOcwpTgDUZ0/XRvLzpKKmkvLMpn5sQERnW4kwKlmVe1ocdmNk1ZrbYzBZv3ry53xvsLKlitLf0+/0iIiNdnEmhHpiWMT0VWJetoLvf5u7z3X1+XV1dvzfopdVUsIvW9vZ+r0NEZCSLMyncB3wwugrpJGCnu6/P5wZtVBUJc5oa1CmeiEg2RflasZndBZwB1JpZPfBPQDGAu98K3A+cCywDWoCr8xVLWtGahQA07djCuHH9r3GIiIxUeUsK7r6gl+UO/E2+tp9N8XGXwxNP0bxzy2BuVkRk2CioO5pLK2sBaG1QUhARyaagkkJ5dZQUGvd3+4SISOEqqKRQWRPOI3Q0KymIiGRTUEmhoibUFLxFSUFEJJuCSgqJ0nJ2UYLt1iM5RUSyKaikANBklSRb9aAdEZFsCi4pNCcqKW7TzWsiItkUXFLYXVRFWbsetCMikk3BJYXW4mrKU0oKIiLZFFxSSJXWMNr1oB0RkWwKLil0ltVQ7U10pDrjDkVEZMgpuKRgo8ZQZu00NKq2ICLSXcElhcTosQA0bN8YcyQiIkNPwSWFkuV/AKB5+6aYIxERGXoKLimMOv0TALTs6P9jPUVERqqCSwqVYycA0LZTzUciIt0VXFKoqp0MQKpJNQURke4KLimUVtSScsOb9aAdEZHuCi4pkEjQYFUkd22NOxIRkSGn8JIC0JispqRNz1QQEemuIJNCS/EYytv0TAURke4KMim0lY6lIqXus0VEuivIpJAqG0u1N+DucYciIjKkFGRS8PJaxlgTDc274w5FRGRIKcikkKwcD8D2rRtijkREZGgpyKTwm2VtADRuXR9zJCIiQ0tBJoUr3n0cAE3blBRERDLlNSmY2dlmttTMlpnZ9VmWzzCzh8zsJTN71Mym5jOetOq6aQC0bldSEBHJlLekYGZJ4BbgHGAesMDM5nUr9jXgR+5+JHAT8OV8xZOpum4KAJ2NOqcgIpIpnzWFE4Bl7r7c3duAu4Hzu5WZBzwUjT+SZXleWGkVuynBmvRMBRGRTPlMClOANRnT9dG8TC8CF0fjFwKVZjau+4rM7BozW2xmizdvHoDeTc3YkRhL6W4lBRGRTPlMCpZlXve7xT4DnG5mzwOnA2uBjn3e5H6bu8939/l1dXUDElxTcS3lreoUT0QkU1Ee110PTMuYngqsyyzg7uuAiwDMrAK42N135jGmLrvLaqna+eZgbEpEZNjIZ01hETDHzGaZWQlwGXBfZgEzqzWzdAyfB27PYzx7SZWPZ5xvp7UjNVibFBEZ8vKWFNy9A7gWeBB4DbjH3ZeY2U1mdl5U7AxgqZm9AUwAvpiveLqzyolUWwubt6tjPBGRtHw2H+Hu9wP3d5v3hYzxXwC/yGcMPSmumQjAjk1rmVq3z7ltEZGCVJB3NAOMGhsuhLrtt0/HHImIyNBRsEmhZny4efoC/2PMkYiIDB0FmxSqx88AIFV3eMyRiIgMHQWbFGx0LW0UYY3q/0hEJK1gkwJmbEvWUbZL/R+JiKQVblIAmkrGU9Gmri5ERNIKOim0lk9kXGoLnZ16VrOICBR4UvDKSYxnG1ua9KxmEREo8KSQrJlKqXWweeO63guLiBSAgk4K5eNCf307NqyKORIRkaGhoJNCzcRwr8JvnlgUcyQiIkNDQSeFqgkzATh1Qmu8gYiIDBEFnRSsYgJtFJNoWNN7YRGRAlDQSYFEgm1F4ylvWRt3JCIiQ0JhJwWgadRkxrRtwF33KoiIFHxS6KicxiQ2s3NXe9yhiIjEruCTQmLMdGqtgfpN2+IORUQkdgWfFEaNnw3AtrXLYo5ERCR+BZ8Uxkw+GID7HtMT2ERECj4pVEwINYVTa1tijkREJH4FnxSI7lVI7lRXFyIiSgqJBNtKplC5SzewiYgoKQDNFdOZ0LGeXW2puEMREYlVr0nBzA4ys9Jo/Awzu87MavIf2uDxMbOYYRtZtbUx7lBERGKVS03hXiBlZgcDPwRmAT/La1SDrGzCHEZZG+vrdV5BRApbLkmh0907gAuB/3T3TwGT8hvW4BozbS4ADWuXxhyJiEi8ckkK7Wa2APgQ8JtoXnEuKzezs81sqZktM7PrsyyfbmaPmNnzZvaSmZ2be+gDZ/SEOQC0btINbCJS2HJJClcDJwNfdPcVZjYL+ElvbzKzJHALcA4wD1hgZvO6FbsBuMfdjwEuA77Tl+AHTPU0OkiSXKeH7YhIYSvqrYC7vwpcB2BmY4BKd/9KDus+AVjm7suj994NnA+8mrl6oCoarwbieVhysohtZdOo2dWAu2NmsYQhIhK3XK4+etTMqsxsLPAicIeZfT2HdU8BMi/+r4/mZboRuMLM6oH7gb/tIYZrzGyxmS3evHlzDpvuu13VBzHT17J+5+68rF9EZDjIpfmo2t0bgIuAO9z9OODdObwv28/t7g8tWADc6e5TgXOBH5vZPjG5+23uPt/d59fV1eWw6b5Ljj+UGbaRZevVW6qIFK5ckkKRmU0CLmXPieZc1APTMqansm/z0EeAewDc/WmgDKjtwzYGTM30IyiyTjatfLX3wiIiI1QuSeEm4EHgLXdfZGazgTdzeN8iYI6ZzTKzEsKJ5Pu6lVkNnAlgZocRkkJ+2od6UTHlMAD+tGhhHJsXERkScjnR/HPg5xnTy4GLc3hfh5ldS0goSeB2d19iZjcBi939PuDvgO+b2acITUtXeVzPxaw9BIC3lW6MZfMiIkNBr0nBzKYC3wLeTvjifhL4hLvX9/Zed7+fcAI5c94XMsZfjdYbv5LR7CiZxNjmZXSkOilKqlsoESk8uXzz3UFo9plMuHro19G8Eadl7DwOZSXLtzTHHYqISCxySQp17n6Hu3dEw51Afi4BilnJ1KOZZRtYunp93KGIiMQil6SwxcyuMLNkNFwBbM13YHGoOeg4EuZsW/583KGIiMQil6TwYcLlqBuA9cAlhK4vRpyiyUcBUP/aMzFHIiISj16Tgruvdvfz3L3O3ce7+wWEG9lGnqopNCermesr6OyM5yIoEZE49fcSm08PaBRDhRlNYw7jEF+hk80iUpD6mxRGbI9xxVOOYq7V8/LqWO6hExGJVX+TwohtW6mZfRyl1s76t16OOxQRkUHX481rZtZI9i9/A0blLaKYJSaFk82rlywEzos3GBGRQdZjUnD3ysEMZMionUN7opRDUitoaeugvKTXm75FREYM9eXQXSLJrkQFh9tyXli9I+5oREQGlZJCFqVHX8KRtpxnl+tks4gUFiWFLEpnnsQoa+Op/3sk7lBERAaVkkI2004A4PDUUna3p2IORkRk8OTyjOZGM2voNqwxs/+JHrgz8lRPZXf5RI5iKc+s0OM5RaRw5FJT+DrwWUK32VOBzwDfB+4Gbs9faPEqmnkKJyZe5/Glm+IORURk0OSSFM529++5e6O7N7j7bcC57v7fwJg8xxebooPfyQTbzsrXn4s7FBGRQZNLUug0s0vNLBENl2YsG7F3NjP7DACm73iGdTt2xRqKiMhgySUpXA5cCWyKhiuBK8xsFHBtHmOLV8102qpn8Y7EKzz+hi5NFZHCkEvX2cvd/c/dvTYa/tzdl7n7Lnd/cjCCjEtxahcnJ17lyTf0JDYRKQy5XH00NbrSaJOZbTSze81s6mAEFzd739cot1Y2v/YUrR26NFVERr5cmo/uAO4DJhOuQPp1NG/km3kqbglOsZd5bKmakERk5MslKdS5+x3u3hENdwJ1eY5raBhVg08+ljOKXuG+F9fFHY2ISN7lkhS2mNkVZpaMhiuArfkObKhIHHwmR7CMZ15+nZa2jrjDERHJq1ySwoeBS4ENwHrgEuDqfAY1pMw7nySdnJVYzB9e3Rh3NCIieZXL1Uer3f08d69z9/HufgFw0SDENjSMn4ePO5gLSxbxazUhicgI198O8T6dSyEzO9vMlprZMjO7Psvy/zCzF6LhDTMbeg8wMMPaWzm282Wef20ZW5pa445IRCRv+psUrNcCZkngFuAcYB6wwMzmZZZx90+5+9HufjTwLeCX/Ywnvxb8jKQ5ZyUX8+OnV8UdjYhI3vQ3KeTSvcUJwLLo5rc2Qgd65++n/ALgrn7Gk18T3wZjZ3NF5fP8ZOEqdactIiNWj0mhhy6zG8yskXDPQm+mAGsypuujedm2NQOYBTzcw/JrzGyxmS3evDmG+wXMoKONebufw5o386vn1w5+DCIig6DHpODule5elWWodPdcnmafrYmppxrGZcAv3D3rT3B3v83d57v7/Lq6mG6R+OCvSOD87Zin+cGTK+jsHLl9AYpI4crnk9fqgWkZ01OBni7fuYyh2nSUVjsHZp3G2bsfYPmmBn7/6oa4IxIRGXD5TAqLgDlmNsvMSghf/Pd1L2RmcwnPZXg6j7EMjMZNTPDNLBjzOjc/uJSOVGfcEYmIDKi8JQV37yB0rf0g8Bpwj7svMbObzOy8jKILgLvdfei3x3z8SaiYyCeqn2D55mbO+o/H4o5IRGRA5XJuoN/c/X7g/m7zvtBt+sZ8xjCgksWQLKZuw2OcM/mDPN9Uxu72FGXFybgjExEZEPlsPhqZPvIHLFnCjbV/ZEPDbt71tUfjjkhEZMAoKfRV1SQ45komvHUvH35bCRsbW3ll7c64oxIRGRBKCv3x9k9Aqo2/X/8pEgaXfu9p2jp00llEhj8lhf4YMwOOvpzS3Vv4/sUzaWlLcfq/PRJ3VCIiB0xJob/e8Wno2MUZD1/AFSdNZ/3O3XoQj4gMe0oK/VV7MJx8LTRt4p+O2UVlaRGfvPt5lqzT+QURGb6UFA7EGddDspjin17Aw58+laJEggtv+T91ry0iw5aSwoEorYQLb4W2ZuruPIV7P34K7Z2dnH7zI+xsaY87OhGRPlNSOFCHXwRzz4WGtbwtuYoffHA+LW0pTv7KQ2xrbos7OhGRPlFSOFBmcN63w/gP38OZB1Vwx9XHs6s9xSlfeYgVW5rjjU9EpA+UFAbC6HFw+S+gYxd88xjOmDueuz56Eh0p591ff4zH34jhGRAiIv2gpDBQZp8eLlNt2giv3MtJs8fxyGfOoCSZ4IO3/4nbHn9Lz2AQkSFPSWEgvfMfwsnne/8S1ixi2thyFt/wbsaUF/Ol+1/nyH/+PUs3NMYdpYhIj5QUBlKyGK57AZIlcMfZsGUZo0uLeO7/ncXs2tE0t3Zw9n8+zs2/e53m1o64oxUR2YcNh8cYZJo/f74vXrw47jD2b9ty+PYJkEjAJ1+BivFhdnMb7/mPx9jS1EZx0phSM4rff+p0SoqUm0Ukv8zsWXef31s5fRvlw9jZ8JEHIdUO3zwaWraF2aNLWHzDWfzyr0+hrCjJyq0tzL3hAU67+WGaVHMQkSFASSFfphwHl/8cUh1w559B06auRcdOH8NLN76HO68+nsqyIlZv28UR//Qgp3z5ITY36m5oEYmPmo/ybfmjcNcCqJwEl/0Mxh+6T5EX1uzg6jv+xPboLuiipHFwXQX3X3cqiYQNcsAiMhLl2nykpDAYVi8MtQVPwYW3wZHvz1ps+eYmLrttIZui2oIBxUlj7sRK7rv2HZgpQYhI/ygpDDUN6+GWE6C1AY7/S3jvl6CoNGvRXW0p/vxbT7Biawup6N6GhMHEqjK+d+V8Dp9cpRqEiPSJksJQlGqHbxwFDWth8jFw8Q9h3EH7fctF33mKJesa6Oj0rgRRlDAqy4poaUtxyIQK1SJEpFdKCkPZa7+Gez4EeKgxnPBX4fLVXlz0nad4dX0DlaVFNOzuoDV6BKgRzkMkE8ahE6v41d+8Pb/xi8iwo6Qw1DWsg19/At78PZRWwTWP9lpr6G7NthY+ePufWLOthY6MLjQMSCZCkphdO5qfffQkxowuGdDwRWR4UVIYDtzhxbvgf68FHN71/+Ckv4bisj6vqq2jkwu/8xTLNjWR6nRS7mQeWgMSCaOuooRRJUWUFyf574+dTEVp0YDtjogMXUoKw0nDOvjtZ2DpbyFZCuffAkdcnFOT0v5c9J2neG19A50OKfeuDvky++Uzg4QZSQtJI2HG3AmV3PvxU3QyW2QEUVIYjpY/BncvgLZmKKkIN7/NOGVAN9HZ6Vz4nad4Y2MjKQ/Tne5k68A1nTAS0asZzBhbTnEyQUlRgl98TIlDZLgYEknBzM4GvgEkgR+4+1eylLkUuBFw4EV3/8D+1jmikwJAZye89N/w6+sg1QZz3xd6X514RF43257q5KKo+anTwaNE0VPCSDMLt8VblDTSycPMmDO+gjuuOp7qUcUUJXXzvEicYk8KZpYE3gDOAuqBRcACd381o8wc4B7gXe6+3czGu/umrCuMjPikkNbWAgtvgUe+HG56m3cBnPH5rHdE55u7c8l3/4/XNzQyY1w57Sln9baWrsTh7nQCvf0pGTCqJElRwmhpS4XkAWCGhZfoNSSWwyZW8fOPnazLbUUGwFBICicDN7r7e6PpzwO4+5czytwMvOHuP8h1vQWTFNJ2bYdbT4Wda8L0EZfAiX8FU48P36JDiLvTsKuDK364kGWbmnBCovBomTtUlBbR0em0tHV0LetNOmEAVJUVU5Q0du5qD8mDvZMJwJzxFXz/Q/MZVZykrDhJsWopIkMiKVwCnO3ufxlNXwmc6O7XZpT5FaE28XZCE9ON7v67/a234JJCWvNW+N5p0FAfpsfPg+OugiMvhVFjYg3tQLg777/1aV7b0BCShHtXMkkvz0wupUUJUp3edY9GXxQnw4n09tSe+zvStZRoNPv86J9pY8pJJsI5lpsvOYqy4gRlxcmu5FNWnCSpcywyRA2FpPB+4L3dksIJ7v63GWV+A7QDlwJTgSeAI9x9R7d1XQNcAzB9+vTjVq1alZeYh4XWRnjlXnj2Tlj3fJg3ug4uuQNmvmPI1R7yqSPVyaXfe5qlGxr31EaiZV1JJZpwYEx5CZ3u7GhpzyjnGeVyq7nkIp1I9iQco6K0iIRB4+6OaF638hkzM4+iGUypGYUB9Tt27bUsM3llrmvO+ApuvXI+xUmjKJmgOGkUJxMUJUzNcQVqKCSFXJqPbgUWuvud0fRDwPXuvqin9RZsTSGb9S/Ccz+GxbeH8w5FZXD638PRH4DKiXFHN6yF2kiKXW0pdrWn+OufPBeddHdWbGkG9k0kmQkoGt1rfllxEgd2t6e63pvxEgvrNpEtXRhQXlIEBi1tqX6tu2pUMQbs3NXe6/a6q60IfYRtbcroVj5LYutpXZOqyzBg3c7dXck6bWrNKD551iHRVXZ7rrRLJEIi32teejxhe9VqYc+xTlj6ffu+JqKYu9ZPL+WiWmlmucqyIsqKkzl8avsaCkmhiNA0dCawlnCi+QPuviSjzNmEk88fMrNa4HngaHff2tN6lRSyaGuB1+6D+z8bOtyDcNXSMZfDQWf262Y4iUdHqpP2lNOW6uTqO/5EZ3QuJl0Temtzc1fZdLLZazpjInN6fGUp7rCpcfe+ZfdeTdbl5SXhi6glehhUX7810k8X7Gr2288Kui8yY0BrccPZzHHlPPrZd/brvbkmhbzdzuruHWZ2LfAg4XzB7e6+xMxuAha7+33RsveY2atACvjs/hKC9KCkHI4klF/8AAAO8klEQVS6LAxb3oTnfwxPfyfcDGdJOPxCmHc+HPzuUFaGrKJkgqIkjCLJL/9afVhlk75oIX25dGfGdMod76SrVpd5eXX6Bs49792zPCzbe117Le/cu6xhGVfPZQYXbg51MmNLrzNMf+3BpazZ3tLLToaXSTVl4KGWA1BZlv8eCHTz2kiVaocVj8Gr98ELP4XODrAEHHIOzD0HDnlv17OjRWTki735KF+UFPoh1QGrngq9s77xuz2Xt5ZWwjs+DXPPhbq5BXWSWqTQKClIdu6w8RVY+gAsvX/PFUxFZTD/w6EWMf1kSBbHG6eIDCglBclNw7pQe1j6ALz5B8AhkYTDzoOZp4ahdo5qESLDnJKC9F1rEyx/JCSIl38e+l6CUGs47LxwH8TM08JzH5QkRIYVJQU5MO6wbTmsfBIe+hdo2ULXJRHJEiithjNvCDWJsbOVJESGOCUFGVhdSeIJWPFEuC+iqyZRAoe+L/THNPV4mHik7o0QGWJiv09BRhiz0Gw07qDQ55I7bH0rJImVT4Yrm5b8T7owTD5mT5KYOh/GzFRtQmQYUE1BBk7jRli7GOoXwaLboXXnnmWJonB39aSjYOLbYNKRUDNDiUJkkKj5SOKX6oDNr0H94jAs+SW0d7uTs7Qajr0y1CwmHhlqIon+9e0iIj1TUpChqX0XbHwVNrwUOvTb8BKsfY69erYpqYS3XRxqFBOPDN2El1bEFrLISKBzCjI0FY+CqceFIS3VDptfhw0vh+H5n4auwTMVlcEhZ+9JFBOPgMpJan4SGWCqKcjQ5A4760OS2PgKPHMrtGxj774yDcqq4ZgrokTxtnCjne7GFtmHmo9kZNrdABuXRLWKl8IVT21Ne5cpGR16hp14JEw4ItQqyqrjiVdkiFBSkMKR6oCtb+5pfnruR7B7J1lrFUdfDuMPhbrDQieAZVVxRS0yqJQUpLC5Q+OG0PS04WVY+J1w5VP7LvDM5ztbSAxHXBKanmrnwLg5UD0NEonYwhcZaEoKItl0pmDHKtj0erhcdsuycONdW+O+ZYvLYc57omRxCIw7OLzqSigZhpQURPrCHZq3wJY3QlPUlmhY8Rh07O5WOGqKOmoB1B0CtXNDU9To2lhCF8mFLkkV6QszqKgLw8xuj8HsaIVtK0LCSA+v/xae+e7e5RJFoVuP2kOiYU6oXdRM1xVRMmwoKYj0pqg0nJwef+je8zs7oWEtbFkKm98Ir6/8ElYvZJ+T3OMOjoao/6ixs2HsQVA1RecuZEhR85FIPrRsg63LwrDlzWj8rXAeY68T3YQb+ma/M0oUs0KyGDsbqqeqyw8ZMGo+EolT+VgoPwGmnbD3/M5OaFwXuiHf+lZ43bYc3no4PB51LxaaoMbO3nsYMzNcHVVUMlh7IwVESUFkMCUSoQZQPRVmnbb3ss5OaNqwd7LY9hYsewje/P2+NYxkCUyZD2NmhB5nu15nhi5A1Cwl/aCkIDJUJBJQNTkMs07de5k7NG0MCWPHKti+as/risfDuY1MlghXRY2dtad2kW6eqp4OSf3Xl+z0lyEyHJhB5cQw8PZ9l3e0hr6itq+MhhXhiqmszVKEDgZnvD0jaWQkDz01r6ApKYiMBEWle65s6i59d/f2FVGTVPS6fQU8+2i4oS9T5aRwzqJmWtTUNW3vafUjNaIpKYiMdGZQNSkMM07Zd3nLtpAo0klj+yrYuTrci7HPjXuAJaHu0L2TRs20PcmjYoLOZwxjSgoiha58bBgyn3GR1tkJzZth55ow7Ihed9aH8dULYfeOvd+TKIbqKXuSRPXUjAQyPSwrHjU4+yZ9ltekYGZnA98AksAP3P0r3ZZfBfwbkD5L9m13/0E+YxKRPkgkoHJCGKb2cIl7a+OeJLFzdcZ4fegmpPtJcAi1ifSVUjXTMxJHNF5Sntfdkp7lLSmYWRK4BTgLqAcWmdl97v5qt6L/7e7X5isOEcmz0koYf1gYskm1Q8O6kCTStY0dK0Mz1eqF8PI9+74nUQwTDt+TKGoyax3TYdQYPXUvT/JZUzgBWObuywHM7G7gfKB7UhCRkSxZHO6hGDMj+/JUBzSuz2ieWr2npvHmHyHVuu89GhB6sZ1xSlTTmBZea2aEBDJ6vM5r9FM+k8IUYE3GdD1wYpZyF5vZacAbwKfcfU33AmZ2DXANwPTp0/MQqojEJlkUvshrpkG2vOEOLVthx+q9z2fsXBPmLX8UOjv2fV/RKJh+0t61jOqpob+pqim69LYH+UwK2ep23Tta+jVwl7u3mtnHgP8C3rXPm9xvA26D0PfRQAcqIkOYWeiWfHQtTDk2e5nWxr0TRXpY9kdY+SR0tu/7nkQxTJgHVVPDDYPVU/Yer5xckF2J5DMp1APTMqanAusyC7j71ozJ7wNfzWM8IjJSlVaGL/gJ87Ivb98dTng3rI3ObdRH42vDpbhv/m7f+zUgNENVTc6oYaTHJ4fpykkjLnHkMyksAuaY2SzC1UWXAR/ILGBmk9x9fTR5HvBaHuMRkUJVXNbzzX1prY3hhHg6WaSTSMO60L3I0gfAsySOZDFMOGJPs1Q6YaS7LKmaHG4uHCbylhTcvcPMrgUeJFySeru7LzGzm4DF7n4fcJ2ZnQd0ANuAq/IVj4jIfpVWhifo1c3tuUw6ceysz0gg9eFE+bbl8MYD2WscieJwdVbVlKiZasqe2scQa6rS8xRERAZSayM0rN9Ty0gnj/Tr5teznxivmBBqFZUZNYzMGkflpAO6f0PPUxARiUNpJdRVhud396StOWqiqt/TVJWucezvHMfYg+C65/IXO0oKIiKDr2R0SBq9JY50jaMxej343XkPTUlBRGQoKhkNtQeHYRDplj8REemipCAiIl2UFEREpIuSgoiIdFFSEBGRLkoKIiLSRUlBRES6KCmIiEiXYdf3kZltBlb18+21wJYBDGeoGIn7pX0aPkbifo3EfZrh7nW9FRp2SeFAmNniXDqEGm5G4n5pn4aPkbhfI3GfcqXmIxER6aKkICIiXQotKdwWdwB5MhL3S/s0fIzE/RqJ+5STgjqnICIi+1doNQUREdkPJQUREelSMEnBzM42s6VmtszMro87nv4ys5Vm9rKZvWBmi6N5Y83sD2b2ZvQ6Ju44e2Nmt5vZJjN7JWNe1v2w4JvRsXvJzI6NL/Ke9bBPN5rZ2uh4vWBm52Ys+3y0T0vN7L3xRL1/ZjbNzB4xs9fMbImZfSKaP9yPVU/7NayP14Bw9xE/AEngLWA2UAK8CMyLO65+7stKoLbbvJuB66Px64Gvxh1nDvtxGnAs8Epv+wGcCzwAGHAS8Ezc8fdhn24EPpOl7Lzo77AUmBX9fSbj3ocscU4Cjo3GK4E3otiH+7Hqab+G9fEaiKFQagonAMvcfbm7twF3A+fHHNNAOh/4r2j8v4ALYowlJ+7+OLCt2+ye9uN84EceLARqzGzS4ESaux72qSfnA3e7e6u7rwCWEf5OhxR3X+/uz0XjjcBrwBSG/7Hqab96MiyO10AolKQwBViTMV3P/v8AhjIHfm9mz5rZNdG8Ce6+HsIfOzA+tugOTE/7MdyP37VRU8rtGU17w26fzGwmcAzwDCPoWHXbLxghx6u/CiUpWJZ5w/Va3Le7+7HAOcDfmNlpcQc0CIbz8fsucBBwNLAe+Pdo/rDaJzOrAO4FPunuDfsrmmXecNqvEXG8DkShJIV6YFrG9FRgXUyxHBB3Xxe9bgL+h1CF3Ziuokevm+KL8ID0tB/D9vi5+0Z3T7l7J/B99jQ5DJt9MrNiwhfnT939l9HsYX+ssu3XSDheB6pQksIiYI6ZzTKzEuAy4L6YY+ozMxttZpXpceA9wCuEfflQVOxDwP/GE+EB62k/7gM+GF3ZchKwM910MdR1a0+/kHC8IOzTZWZWamazgDnAnwY7vt6YmQE/BF5z969nLBrWx6qn/Rrux2tAxH2me7AGwlURbxCuGvjHuOPp5z7MJlwB8SKwJL0fwDjgIeDN6HVs3LHmsC93Earn7YRfYR/paT8IVfdbomP3MjA/7vj7sE8/jmJ+ifDFMimj/D9G+7QUOCfu+HvYp3cQmkleAl6IhnNHwLHqab+G9fEaiEHdXIiISJdCaT4SEZEcKCmIiEgXJQUREemipCAiIl2UFEREpIuSgoiIdFFSEMmBmR3drRvl8waqC3Yz+6SZlQ/EukQOlO5TEMmBmV1FuBHr2jyse2W07i19eE/S3VMDHYuIagoyopjZzOjBKd+PHp7yezMb1UPZg8zsd1GPs0+Y2aHR/Peb2Stm9qKZPR51jXIT8BfRg1f+wsyuMrNvR+XvNLPvRg9tWW5mp0c9bL5mZndmbO+7ZrY4iuufo3nXAZOBR8zskWjeAgsPUnrFzL6a8f4mM7vJzJ4BTjazr5jZq1GPnl/LzycqBSfuW6o1aBjIAZgJdABHR9P3AFf0UPYhYE40fiLwcDT+MjAlGq+JXq8Cvp3x3q5p4E7CMzqM0O9+A/A2wo+uZzNiSXcFkQQeBY6MplcSPTiJkCBWA3VAEfAwcEG0zIFL0+sidLdgmXFq0HCgg2oKMhKtcPcXovFnCYliL1GXyacAPzezF4DvEZ7GBfAUcKeZfZTwBZ6LX7u7ExLKRnd/2UNPm0sytn+pmT0HPA8cTniaV3fHA4+6+2Z37wB+SniiG0CK0KsnhMSzG/iBmV0EtOQYp8h+FcUdgEgetGaMp4BszUcJYIe7H919gbt/zMxOBN4HvGBm+5TZzzY7u22/EyiKetb8DHC8u2+PmpXKsqwnW7/9abs9Oo/g7h1mdgJwJqHX32uBd+UQp8h+qaYgBcnDA1VWmNn7oeuB80dF4we5+zPu/gVgC6Ef/UbCs3z7qwpoBnaa2QTCQ5LSMtf9DHC6mdWaWRJYADzWfWVRTafa3e8HPkl4KIzIAVNNQQrZ5cB3zewGoJhwXuBF4N/MbA7hV/tD0bzVwPVRU9OX+7ohd3/RzJ4nNCctJzRRpd0GPGBm6939nWb2eeCRaPv3u3u252NUAv9rZmVRuU/1NSaRbHRJqoiIdFHzkYiIdFHzkYx4ZnYL8PZus7/h7nfEEY/IUKbmIxER6aLmIxER6aKkICIiXZQURESki5KCiIh0+f+NaAvWO3tOLgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ab2c237518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#调整max_depth和min_child_weight之后再次调整n_estimators(6,4)\n",
    "xgb2_3 = XGBClassifier(\n",
    "        learning_rate =0.1,\n",
    "        n_estimators=1000,  #数值大没关系，cv会自动返回合适的n_estimators\n",
    "        max_depth=5,\n",
    "        min_child_weight=1,\n",
    "        gamma=0,\n",
    "        subsample=0.3,\n",
    "        colsample_bytree=0.8,\n",
    "        colsample_bylevel=0.7,\n",
    "        objective= 'multi:softprob',\n",
    "        seed=3)\n",
    "\n",
    "modelfit(xgb2_3, X_train, y_train, cv_folds = kfold)\n",
    "#from sklearn.model_selection import cross_val_score\n",
    "#results = cross_val_score(xgb2_3, X_train, y_train, metrics='mlogloss', cv=kfold)\n",
    "#print results\n",
    "#print(\"CV logloss: %.2f%% (%.2f%%)\" % (results.mean()*100, results.std()*100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "f:\\Anaconda2\\envs\\python3\\lib\\site-packages\\ipykernel_launcher.py:1: FutureWarning: from_csv is deprecated. Please use read_csv(...) instead. Note that some of the default arguments are different, so please refer to the documentation for from_csv when changing your function calls\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1oAAANGCAYAAADktv9+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3XeYVNX9x/HPd+ltAUEEBEHFLqKIvSHYe2I3FojGRI3RmJ9G1BjsNYjdGAt2bFGj2BABBUEFC2BBUEB6Z5eyfc/vj3vnzr3D9r27s+X9ep55uOfOmTtnZpZlPpxmzjkBAAAAAOKTke4GAAAAAEBDQ9ACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0ALQaJjZU2aWZ2Z9S7jvWjNzZnZiyvlM/77PzWydmRWY2XIze9/MzjGzFqG6vf1rhG/ZZvatmV1pZk1q43WWxcwuNbMh6W5HdZhZazMbbmYDS7hviP++905Du7r77dqztp87ncxslJltSHc7JMl//52ZdU53WwCAoAWgMblS0jJJz5hZs8RJP3jdJGmUc+7t0PkdJH0t6XpJkySdL2mQpMslLZb0lKQbSnieByUd4N/OkDRZ0n2S7o7/JVXapZKGpLsR1dRa0j8lDSzhvjHy3veltdkgX3d57WpUQQsAULKm6W4AANQW51y2mV0o6UN5AemffuB6TtJyeUFMkmRmTSW9KWkLSfs6535IudwrZnazpL1KeKpfnXNTQ+X3zWx3SWdL+ltsLwibcc6tlLQy3e2Ik5m1ds5tSnc7AACVQ48WgEbFOfeRpMckXWdme0saLqmfpAudc1mhqr+RtKuk20oIWYlrLXDOvVnBp86SVBA+YWYZZnaNmf3oD2lcYWbPmlmP1Aeb2e/9IYi5ZrbGzN4ws11S6mxnZqPNbIl/veVmNi4xlM3M5kvaTdJhoaGN88tqtF/nITM7z8x+MLNNfjtOqODrDl+ruZndEHq9K83saTPbMqXeIDObYGarzSzHzH41s9f9IYO9lQxS/wy9jlH+YzcbOuhfa5aZHWBmn/nXnG9mQ/37jzezr/zXNtPMjklpTx+/nXP8OovN7O3wEFR/GOOXfvHpULuGh+qcZGZT/GusN7OxZnZAynMlhr71N7PXzGytpJ/9+8r8fEt5z6/0r9enhPvuMrP8xDA7M9vLzN7xfw7z/OcZU9LPY1WY2cF+e9f778FnZnZ8KfWm+D/ri83sFjO7KPVzrWZbdjezt8xsrf8835jZBSl1Mvyf19n+z8w6M5thZleE6mxpZo+b2cLQz/RkMzsijnYCqN/o0QLQGF0t6WhJr0nqKekx59zYlDpH+n/+rwrXzzCvR0yS2ks6WdIxku5KqfeopIslPSTpHUm9Jd0iaaCZ9XfOrZIkMxsm6XZJL0kaJqmTvIA4xcz2cc7N8a/3rqQmkq6R9KukzpIOlNTBv/83/mvOkjeEUJLyKvB6jpe0j6QbJW3wr/+Gme3knPulAo+XmWVIekvSIfKGUH4mqZe8IZsTzGyAcy7H/yI9RtKnkn4vaZ2kreW9f83lDQk8RtL7kp6U9IT/FOX1YnWV9LT/3IvkDf98ysx6SjpN3vub5b/GN81sO+fcEv+x3SWtlnSt/zxbSLpA0udmtpdzbrakryQN9Z/jVv81yH8umdk5kl6Q15t6tqQW/vs4wcwGO+cmpbT3v5JGy/tPgTb+ufI+35I8L+/nbohCw1zNmy94rqS3nXOrzKyNpLGS5km6TF4Pb1dJh0tqV8b1K8TMDvOvP0PShfJ+7i6V9LaZne2ce9mvt4df7yd57/EmSX/y2xoLM9tJ3s/fCkl/kffZnitplJlt5ZxLDPG9Rt7fs1slfSKpmaSdFX2/n5PUX97w4p/8+/rL+zsKoLFzznHjxo1bo7vJ+7Lr5H1xb1vC/e/597dIOW/y/pMqcWsSuq+3/5iSbk+n1N3ZP/9wyvX39c/f5pc7yPuyOSalXk9JuZJe8Mud/MddUc7rniVpQiXeJydvXlu70LmtJBVJurYS1znLv9ZvU84P8M9f4pdP9cv9yrhWZ7/O8BLuG+Lf1zt0boJ/bu/QuS0kFfrvbffQ+X5+3cvLeP4m8r50/yRpRAmvZUhK/Qx5c/pmSMoInW8rL9BMDp0b7l/jppRrVOjzLaW9r0tamPLcx/rXO8Ev7+2XT67C9UdJ2lBOnSn+a20bOtdE0ky/beafe0VemO+c8v59l/q5lvI8ifevcxl1XvL/7vRMOf+upI2S2vvltyV9Xc7zrZd0X2XfM27cuDWOG0MHATQ6fu/K5ZKKJXWR9+W6oq6QNwQwcfu2hDr3y+sB2kdej8B18hbFeClU53D/z1HhBzrnvpD0g6TB/qkDJLUqod5CSR+H6q2RN8TsajO7yh8GFtfv+PHOufWh514urzegVyWucYK83qm3zaxp4ibpG3lBbqBf7xtJ+ZIeN7MLzGy7OF6ApKXOuemJgnNujbzX8I1L9lxJ3nsvhV6b39brzOx7M8uXF9DyJe0gKTJ8sxQ7yesVe845VxxqwwZ5IWh/M2ud8pjXU8rV+XyfltRDUng421B57/t7fnmupLWS7jKzP5nZrhW8drn83rL9JL3mv2ZJknOuSF6PUA9575EkHSbpY+f35vr1iuUFsLgMkjTO/zsUNkreQiuJ4ZxfSOpnZo+Y2dFmllnCtb6QNMQfYri/hRbZAQCCFoDG6P/kfZk6R9IceUPIWqXU+dX/MzVMvKhkiPqqlOsvcs5N828TnHN3yBsSeLqZHe3XSQwtKml1vCWh+ytUzznn5IWuD+QNefpK0koze8DMqjv0a3UJ5/LkBcCK2kpe71y+okG1QN4Qtc6S5Jz7WV4gWCHpYUk/m9nP4XkxVbSmhHP5qeedc/n+YcvQ6RHyPr83JZ0oLzTsIy9kV+Q9KO8zzJDUMeV8pG41P9/3/Osl5qR1lHSSpGf9sCPnzU88TF7QvV3Sd/4crZtiCA8d5fUEl/b6pejP+/IS6pV0rqo6VbAtd8j7XbG/vPdwtT/HbEDoMWdKekbSRfJ67daYN8+ya4ztBVBPEbQANCr+/9TfLO9L5svyhpr1kXRbStXEnK2TwiedcysSIUresKGKmuH/meg9S4SXbiXU7S5pVSXryXmLc1zonOsqr4fgPnnzYO6pRDtryip5r2WfUm6JOWNyzn3qnDtR3vy2/eV9gR1pZmfVdqN958r7ebnOOfeBc+4L//Ov6F5N5X2GxfJ6k8JcasWqfr6hnqNTzKyDvP9gaCGvpytcb6Zz7ix5QWNPSS/Lm7NW3ZUy18p7jaW9fin6875VCfXiDC6rK9IW51yhc26Ec66/vKGmZ8sbsvtBogfSObfKOXelc663vP+UGSbpt0rpgQbQOBG0ADQa/lC1Z+R9kbpCkpy3DPsISVeY2UGh6m9I+l7e6oQ7x/D0iZXhVvh/fuz/GZnkb2b7yBuONs4/NUVSTgn1esgfAlXSkznnfnLO3SpvDkz/0F2V7YmKyzvyvsA3CfX2hW+zUx/gnCtyzn0ub3EGKfk6Egt41NbrcEpZNMRfLW/rlHqltWu2vDla55iZha7RRt6ctCmuksu3l/H5luZpeb10Z8v7z4UpzrkfS7m2c85965z7q7zhnhW5fllt3Sjpc0m/Dfcc+0Mfz5W3YMhP/umJkgZZaMNhv97p1WlDinH+c3RPOX++vDl7U1Mf4Jxb55x7TV4v6xby5mOm1vnVOfeQvP+kqdZ7BqBhYNVBAI3JMHkLFhzrnFsXOv8PeUPCnjKzPZ1zOc65IjM7Rd5QrS/M7D/yFlVYK28I3H7yeqdKWvp9GzPb3z9uI2+Y4jBJC+StJifn3Gwze1zS5WZWLG9oUm95Q9QWyuutkHNunZndIul2M3tW3jyvTvI2xs2Vt2pfYrW2hyS9Km84ZL68ILaHpDtDbZsp6SwzO1PSL5JynXMzK/MmVtFoSb+T9K6Z3S9vbkuBvPk5h0t6yzn3hpn9yW/3GHnDN1vKW31Qkj6SJOfcejNbIOlkMxsnb/jfKufc/Bpq+zvy5uH8KK9ncm95K1cuSqn3s7xQ/Dsz+0Heog5LnHNLzOwaeasOvmNm/5bXo3S1vJ+la8trQCU+3xI55340synyfg57ylvtMnz9E+T1jr0p7+fC5PXMdFCyd7csTczstBLOb3TOvec/71hJ483sXr/9l0raXdLZ/tBIyetZPlHSODO7Td77+SclV14sVsWcaGab9Tj7YekmeXMGx5u3F94aeT+bx0u6xh9GKTN7W97iMdPkrTbZS95eewskzTGz9pLGyxtO/KO8Hu595K2K+d8KthNAQ5bu1Ti4cePGrTZu8kJRvqTHS7l/f3kr6Y1IOZ8p70viF0ruhbVc3jLdl0pqHarbW5uvNpgjr0fjPkldU66dIW++zWy/bSvlLw5QQvsulDcnKE9eL8ObknYN3d9FXq9F4gv+er/+lYqudthLXnjM9ts3v5z3zUl6qITz8yWNquRn0FTeMLRv/Pdlvd/exyT1CX0O//Wvnyuv93GCpBNTrjVY3jylXL+No/zzQ1TyqoOzSnkN75T3muWFjSf8z32jvKXnD/avOyHlsWf5rylfKSsjylvmf6r/2jfIC44Hpjx+uEpYNa+in2857/8f/GtvkpSZct9O8gLDXP/+dfJ6oS6owHVHqfTVNueH6h0srzdpg/8cU+SvephyvYP99ylX3lyqu+X9PXHyVwQsoy3Dy2iLC9XbXd7WDevk/Z36RpuvFnmVpMny/l7myQtYT0jq5d/fQt4WDd/K+92wSV7gGq7Q7wVu3Lg13ltiOVUAAIA6ycw+lBeed0x3WwCgohg6CAAA6gwzGyHpa3lDaLeQN6zvSHm9ugBQbxC0AADV4i8yUpZiF9o/CihHE3krg3aVN+Tve0nnOeeeT2urAKCSGDoIAKgyM+staV451W5yzg2v8cYAAFCH0KMFAKiOJfJWWiuvDgAAjQo9WgAAAAAQMzYsBgAAAICYMXSwBGZmkrrL26cEAAAAQOPWTt4m9BUeDkjQKll3SYvS3QgAAAAAdUYPSYsrWpmgVbL1krRw4UJlZmamuy0AAAAA0iQ7O1s9e/aUKjnajaBVhszMTIIWAAAAgEpjMQwAAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbTqsE35hep97Rj1vnaMNuUXprs5AAAAACqIoFWPELwAAACA+oGgBQAAAAAxI2jVY/RwAQAAAHUTQasBIXgBAAAAdQNBqwELB69VG3IJYQAAAEAtIWg1UvR+AQAAADWHoAVJBC8AAAAgTgQtlIjgBQAAAFQdQQsVQvACAAAAKo6gBQAAAAAxI2ih0ujdAgAAAMpG0AIAAACAmBG0UG30cAEAAABRBC3EjuAFAACAxo6ghRpH8AIAAEBjQ9BCrSN4AQAAoKEjaNUT+YXF6W5CjSF4AQAAoKFpmu4GoGIOvmu8Bu60ZbqbUeM25Rdq1xs/kCR9f/PRkhQpt27OjywAAADqPnq06okNeYV6Z8bSoHzHuz9oweqNaWxRetD7BQAAgPqAoFVPvHDRvrrgwF5B+bmpv+rY+ycF5bUb89PRrLQjeAEAAKAuImjVE3tt01F/P2bnoHzYjtFhhAfdNV4nPJgMXus2EbwIXgAAAEgXJrzUU4+e218LVm+M9Gr9sjI5lPDgu8Zrjx4dgnJOflGttq8uYL4XAAAA0oUerXqsV6c2wfFn1x6uh87ZKygXO+mbheuC8sB7JgbHo7/4VdMXrK2dRgIAAACNEP+l30B0aN1cg3buEpQ/uupQTZq7SsP/970kqci54L6b3/kh8thLn/9KO2zVtnYaWofQ4wUAAICaQo9WA9W9QyudMaBnUB7zl4OC40N36KyumS2D8oSfVuo/n84Lyic9NFkjP5pTOw2tw5jvBQAAgKriv+wbia1Cweqx8/aWlOy9ueH4XTR7+Xq9Om2RJGnuig2au2JDUP/mt7+P9JY1RvR+AQAAoDL4dgids982khQErbtO7atxP67Qh98tlySN/nKhRn+5MKg/8aeVtd/IOq68IBYuT7thsAbcOi64j5AGAADQ8DB0EJs5sV93jTxzz6B8+oAe6ty2eVD+2yszguOpv6xWcbETqo4higAAAA0PQQvluumk3TTh/wYG5S3btQiOfz9qmo4e+WkaWtVwpQav8soAAACoe+pE0DKzS81snpnlmtl0MzuknPodzOxhM1vqP+YHMzuuOtdE2TIyLDgOL6zRtkVTLV6XE5QPu2eCLnvhq6BcWFRcOw0EAAAA6pC0By0zO1PSSEm3SdpL0qeS3jOzbUqp31zSWEm9JZ0maSdJf5C0uKrXROVkWDJ0Tbx6oO46tW9QXrk+T+NnJ+dwHXrPBN341qxabV9jQu8WAABA3ZT2oCXpKklPOueecM794Jy7UtJCSZeUUv/3kraQdIpzbrJzboFzbpJz7ttqXBNV1Kp5E53Yr3tQfuGifTXsuJ2D8rpNBXptepCB9dtHPtN1b8wMytk5BbXT0EaC4AUAAFA3pDVo+b1Te0v6MOWuDyUdWMrDTpI0RdLDZrbczGaZ2XVm1qSq1zSzFmaWmbhJale1V4S9tumo8/bvFZSfGjJAZ+6T3M/rx2Xr9ebXS4Ly/nd8rCNHfBKUv1uSXTsNbSSY3wUAAJAe6V5XurOkJpKWp5xfLqlrKY/ZTtIgSS9IOk7SDpIelvdabq7iNYdJ+mcl244K2H+7Ttp/u0562V8e/sGz99KPy7L18PifgzrhOV4XPPVlcHzdGzO1ZdvkwhvTF6yNLMSB6mN/MAAAgJpRV75Fpa4PbiWcS8iQtELSxc65IknTzay7pKvlBa2qXPMOSSNC5XaSFlWg3aikwbt00eBdugRBa8qwQZq9bL2GPO0FrHYtm2p9rtfTEu75kqTznvwiUr5y9Dfq17NDLbS6cSKEAQAAVF2652itklSkzXuaumjzHqmEpZJ+8kNWwg+SuvrDBit9TedcnnMuO3GTtL5yLwNV1b5VM+277RZB+aOrDg2Orxi8Q7CZsiT17NhKLZslf2Q//H657vlgdlA+899Tdfu7PwRl59jfqyYxLBEAAKB0aQ1azrl8SdMlHZly15GSPivlYZMl9TGzcNt3lLTUOZdfxWuijmgSWkb+j4dtpxuO3yUof/DXQzX9hiOC8lVH7qBBO3cJyjMXZ+n5qb8G5WPun5R87HfLNGtxVk01GwAAAIioC2N/Rkh6zsymyVvk4mJJ20h6TJLM7FlJi51zw/z6j0q6XNL9ZvagvDla10l6oKLXrC9aN2+q+XceH5TpJZAstLT8RYdsJyk5nO3u0/rqm4VZevFzL2yt3pAf1P3ry+FFKaXLXvxK/bfpGJTnrdqonPwiIT6pQw8ZaggAABqTtH/zcc69bGadJN0oqZukWZKOc84t8KtsI6k4VH+hmR0l6T5JM+Ttn3W/pLsqcc16ieBVthP26K4T9ugeBK3/nN9ff3jW2zy5X4/2WrQuJwhf439cqfE/Jvf7Ov6BSZFrnfzQZB24fadaannDV958r/LK4ZBGgAMAAPVBnfiG4px7RNIjpdw3sIRzUyTtX9VrNhQEr7LtFeqxeuli78cl8QX96qN30le/rtW4H1ZIkjJbNlWr5k20PDtPkjRnxQbNWbEhePzJD00Ojt+duVTd2res8fYjKRyupt0wuNT7CF4AAKCu4BtJA0LwqrihB/XW0IN6B1/Qp17nfXlPlP91Rj9N+XlVsNny4nW5wWP/79UZkWud9fhU7dotMyiv3ZivDq2b1Wj7UTpWSwQAAHUB3zgasHDwInRVzrG7d9Wxu3cNgtbD5+yly178WpI0oFdHLc3KDfb/mrEoSzMWJRfaOOiu8WrbIvlX66pXvlW7UPm9mcuC4/zCYjVvmu7FPxuX1N6xAbeOk1T9IY0AAABhfEtoJOjtqp79tksuQf/shftKSn7hvvf0PfTdkmw9PXl+UGdDXvL9fX9WMlhJ0j/e+i447n/LWG3dsVXy2p/NV/cOybJzLrIACOqW6oS28kIaQyIBAKjf+Je7kUoNXpIIYlV0XN9uOq5vtyBoffWPI7R4XY5OfNCb1zXsuJ21IbdQD348V5LXIzZtwVpJUrGTFq7JCa515/uzI9fe57ZxkeD13qxl6rt1plD/VWSBkIrWJYQBAFD3MGYJiFnLZk20/ZZtg/J5+/fSJQO3D8qPndc/OJ549UCNGrpPUD56t63Ud+v2QXlTfpHmhhbl+Nsr3+qo+z4NymNmLI29/ah/2DwaAIC6h/8GRYkYalg7tmzXQlu2axGU7ztzT0nJ3ooxfzlYS9bl6A/PTpck7dY9U7OXr1dhkZMk/fN/3wePffLTeTpspy1rq+moR8oa4khvGAAANYN/YVEhLKyRHtt2bqNtO7cJyq/+6QDlFxZrz5vHSpJ26NI2WIb+X2N/0r/G/hTU/ej75erfq6OAsjAsEQCAmsG/oKg0ervSK7xK4UsX7xf0Thzcp5M+n7dGBX5v119GfxN53IMfz1X3Dsn9v4qKnZpksNAGykYQAwCgavgXEtVG8KobHj9/gDbmFWqf27zg1adL28j8rkcn/Byp3/+Wsdpmi9ZB+fWvFql3pzYCKqoiC3oQygAAjRX/6iF2BK/0aRPar+t/fz5Iazfm66C7xkuSTh/QQ0vX5WrS3FWSpIIip59Xbgzq/+PN7yLXuuCpL4Pj16cviswlA6qC3jEAQGPCv2qocSwlnz4d2zQPjm86aTdJyS+2Y/96qOav3hgstHHQ9p00f/WmYCPm75ZkB48N7/0lSWc9PlUHbt+pRtuOxoUQBgBoaPiXC2nHQhvpsXXHVpHNkv9zwQBJyS+3d5/WV9e8NlOSdMgOnbVifZ5mL1svSZqxKEszFmUFj937lo+0RSjUvTZ9kfpv06HGXwMaD4YpAgDqG/4lQp1SXu9XaplgVnMG7dwlOP73eXtLSn6RvfWU3TXl51UaM3OZJCmnoCjoCZOkG1N6wG4b80NwvHDNpsgmzEBNYEl7AEC68a8N6rWyghkhrOb8tv/W+m3/rYOg9cGVh2jNxnyd/Z/PJUkDenXUzMVZyissliS98fWS4LFHj/w0snLi9W/MUmar5K+iV6YtVMumTYLyiuxc5ochVpXtHUst11ZQoxcPAOo3fiujwWJRjtrTc4vW6hlawfDZC/eN7Pd14cG99eSk+ZK85enz/QAmSW98vThyreGhTZglaeC9E9WyWTKYXRFatv7mt7+PLFH/7syl6tOlbfVfEFCK6oa0cDm1p62kunG1ixAGALWP37xoNBiWWLvCvVaXDNw+CFrTbzhCS9bl6OiRn0qSrjxiB2XnFOipyd79g3buoryCIk3+ebUkKcOk3IJkMJs8d3VwPPrLhZHn/L9XZ0TKQ5/+UltlJvcOmzB7hbq2T5aLnavGKwTqj9QgRvACgJrHb1qgFKnBjBAWjyYZFun9uvjQ7SQpCFoPnbOXpOT/xn9945Fasi5Hx94/SZL0jxN20S3veHO+Ljt8exUVOz028RdJ0l49O2jOig3akOd9Pp/PWxN57ktf+DpS3ve2j4Pj4x+YpO6hEDZx9krt3K1d9V4sUEeV1QPGnDYAiAe/PYEqYFhi7WnWJEO9Qhspn7xn91DQ6iNJQdB64Q/7yTmn3f75oSTprlP7allWru77aI4kaddumVqWnas1G/M3e555qzZq3qrkvmKXvPBV5P5b3vlevTsn21Fc7JQRGrYINFTMFQOAquG3IRADglfdYZYMPyf26y5JQdB67ZIDJCW/FH501SE6YoQ3hPGpIQO0NCtX178xS5LUp0tbzVu1UUXF3vDCl76IDlMccNtHkQA4YuxPwfHTk+dH5pWN+2FFpFxYVKymTZJloCFhmCIAePjtB9SA8uaDEcrqhg6tk3t/7b+dtwFzImj9788HKbegSP1v+UiSdNEh22r+qo366IcVkrx5Y4l9xSTpxc+TQeyeD2ZHnufyl6JDFve+9SNtt2Vy0Y7Xpi/Slm2TKyu+N2uZVm3IC8ovh+aiLV6XExniCNR1ZS21L6Wvd6ysQMjiIgDiwG8KIM3KC2UEsfRp2Sy5zPxVR+4oKfll690rDtb8VRuDeV/nH9BLz05ZIEk6YY9uyiss0tjvvVC2R4/2yiso0uzlGyRJBUUuEtJS9x372yvfRsr3fJDsLTtyxCfKbJn81f3ohJ/VuW0yMM5Zvl5tW/KrHQ1DZeaShe+raLms54mrXamhrDpDMQmAQP3C30igjmNYYt3Uu1Mb9Q4NHfzL4D5B0Lr7tD0kJb8Ajb54/0j5gysP0U/LNwQ9XYftuKVWrs/T90uzJUl79+qozm2b64PvlkuSBu/SReP8nrSmTUzZucmfgQc/nhtp18kPfxYpn/7YFPXulFx8ZOrPqwWg9lQ2xJX1+Gk3DK70c1U1qBLagOrjbxFQz4SDF6Grfkrdd+zRc/tLSn7Jee7CfSPlu07tG3whmnb9Efpl1Qb99pEpkqRT+2+t1RvyNeGnlZKkjq2baX1eoQqLvLll3y3J1ndLsoPn+vNLyX3IDr5rvHqF2jH6y4Xq3CbZO1ZU7CL7lAFoPKoT2soLafTMobHgJxmox+jtanyaN83Qzl0zg/Itp+wuKfklZfK1gyIrLz5w9p5asHqT/vWhN/ywT5e2mrvCG8K4ZmN+ZAXGm9+Obha9181j1a1Dcj7Yfz75RT1CwaywqFgAkKoiIa06j40rlFVn4ZbaDIsE0/qLTwZoQAhekKIrLx6xy1aSFASt0RfvF/zP82uXHKAFqzcFc8IG7dxFqzfk6dtFWZKkwmKnhWtBpW6zAAAgAElEQVRygmslVm9M2P+O8cHx8Q9MimwA/cfnpqtHx1ZBedKcVcpslfwnh5UXAcShuvP4Knqtkq5d1XZVt51lPVcccxdr4lqNdehqw3gVAErEQhsoy67dMrVrt8wgaKVuFj3ub4dq8docnf/Ul5KkE/t10+K1Ofrq13WbXSu8B5kkfTpnVaR88XPTI+U9bhqrti2S/wT96bnkvmUPfjxXXTOTqzCu25Sv9q2aVfr1AQDqp4ayTUT9bDWAWNADhrJ0a99K3done6XuOjW6yEd4H7Jnf7+vMkw698kvJEk3n7ybFq3N0eOfeJtJ77RVW2XlFmpZVm5wvQ15yZ+3aQvWBsePTvg50o4D7xyvFk2TvV8XjpqmVs2TK0KOmjxfXUNL3jO3DABQFxC0AARSgxchDGUJ70M2oHfHyH2n7d1DkoKg9cZlB0lKhrRJfz9c2TkFOu6BSZKkW0/ZTTe86S1zf8aAHlqenaeJ/gIfkpRXmJwPNuWX6MqJd6fsW7bXzWPVJdQj9o83k8vnPzlpXmR5/LHfL1dhcXLI4+vTF0XKo79cqCahzPbtws178wAAKAlBC0CF0PuFOG3Rprm2CK1weMzuXYOgNfyk3SQlQ9k3Nx6pFetzddR9Xu/Znaf2VU5+kW7yF+84rm9XLcvKDYY0FhY7LVmX7Dl7b9ay4DgxVy3hitHfRMr/SNnTLHWBkAufSQ6BHHjPBG0f2nh69Be/qllo3tl3S7LUpV2ypy2/sFg5BUVBed2m5EIkqzfkKTcUJj/+cUVk0+rnpi6IDJ+csWidWjRN9uoVFrMwCQDUNQQtAFVS3vyvcJlQhupo3jRDPTomVzs8qV93SQqC1r2n95OUDGYf/+0wLcvK1TlPfC5JumJwH90/bm7w2PV5BRr/o9db1n+bDmqSYfpyvjd0ceCOW6pJEwv2LTtily4qci6ov3WHllrsh7gV6/O0Yn0yDN38zg+Rdp/+2NRIec+bx0bKiWGXknTI3RMi9/35xa8j5Tve/TFSPuvxzyPl/W9PLkxy+mNTIqHsgXFzIuWZi7MiIRcAUDMIWgBqHL1hqE1d27eMzNk674BeQdC689S+kpKh7PmL9ouUH0nZ0+yBs6MLhLz154OClbJe+sN++nnlRt3w5ixJ0lG7bqX8wuJgT7Mu7Vpo1YY8hUYilqlF04xgiGTfrTPVqU2L4FpH77aVsnMKg2GT3Tu0VF5BsVaHludPCO+bJkmPTfwlUj7z39EAuO9t49SiWbIn7jx/np0kXf/GrMjCJNPmr4lMSl+fW6BWzZI9awCAJIIWgFpXmd4wiWCGuqlfzw7q17NDELRGnrWnpGQom3D1QBUWFWuPm7yerC+uG6wWzTLUL1G+fpD2ve1jSdKs4UcpI8OCx778xwMi17rvzOi1P7rqsEh57F8P0ZH+0MpHf9df63LyNey/XrvO2ben1uUU6N2Z3hDKrpkttWZTvvL9ULchr1ChUYr6Yen64PiNrxdHXnNiBcqE/W7/OFK+5rUZ2r17pgAABC0A9UBZi3SklgllqEvCe4W1bRn9JzcjtN9ZRjVXSewYGgp42E5bSlIQtG44YVdJCoLWx/93WGRT63evOFh5BcX6zSOfSZJGntVPV472lvz/y+A+WpaVq1emLZIkbdu5jTblF2p5diiZhbwzY6nembE0KA+8Z4K27dwmKD/88dzg+KUvfo0Mafx24TqF3hJ9vzRb4bdlQ26h2rRI9p5l5RQExx9+tyyy+fYt73yvgtCG2sP/951ahnre7v1gtopCXY3//SoZKCf+tDJy7eenLoiscvn5L6sj11q9IS9yPwAkELQANCjMHQPKF97UunenNpH7Du7TOTj+02HbS1IQtMb85WBJ0YVKNuUX6sA7vTlilw/qo1lLsoI5banz2J7+bEFwfEvKnLaz/xOdd3bao1Mi5X1vH6emoeQ1+F+fBMdXvvxtpO5LXyyMlBPtT3hq8vxI+fbQHLhLnv+q1PskaeioaZFy6vy6I0Yk23XhqGmRFTBHf7lQzULLWE5fsFYdWyfD5i8rN0RC3vQFayMh7selyWGh3y/NVutQ4MsvLFbzplXbBHxTfqGaGFsiAHEjaAFotNjQGaie5k0z1LxpsjftkoFeMEsEsdR5bGfv2zMIQUfu2kVZmwr0hb8QSY+OrVTskitGdmnXQsXOadWGZE9VYSkT3vpv00Ed2zQPFjG5ZOD2atbE9IA/N++yw7dXXkGxnpg0T5I09KDeapJheuJTr3zojp31yU/eJtu7dstU+1bNgvlwR++2lXLyi/SJvwn39lu2UU5BUWRly7B1m5JBKXUrgtRVLMPz4STphAcnl3n/uU8mh26mBtE9bx4bCaLHjPw0EtIuemZaZH+5Ex5IPldi3mHCrjd+EKk7+F8TIxuM3/vBbPXomNxjb8m6HAHYHEELAErBIh5A9aTOY/vbUTsGQev+s6ILjXz410Mj5QlXD4yUv/rHEcrKKdDh906UJH127eFBT1rqoiaXD+ojSaGg5ZUTQevqo3fyyn7QGnFGvyBsvHZJ2fPj3r482qs3a/hRyi0sCh4/+uL9glUh7/jt7lqRnaf7PpojyQuXBYUuWORkmy1aa+2mfK3P9X63ZLZsqvatmmnh2pzg/pyCIq30ewW7tGsR9BB2addCOQVFwWOlaBD9dc2myGfx2c/R0Lcsu+SgmBAeWrk0K1o3tUfwpIc+C44PvXt8ZI+9IU99oZyC5DDOEx6YJIU6zw67Z4JyQ9seDH06GSbv/WB2ZFjtc1MWqE0o8M1dsUGd2yafyzmngqIKrj4D1AKCFgBUEMELSJ+WzZpE5kZVdZhc3DIyLLISY58uyb3VTt5za0kKglZquHz/ykMi5anXDS7z/nevODgIdKlBdOqwQcopKAqC6HMX7quc/CJd/Jy399udp/ZVUbHT9W94oXfU0AEa8rQ3DPLL6wer2LlgcZOJVw9UsXPBtV7+4/5an1uoi57x6p+7/zZavC4nGCLavEmG8v05cas25Ed6IRM9lgm/rNoYKa9cH53vN3NxcnhkaqC7473oMM6THor2ACbmHSYcGhrWee4Tn6tdy+QwzT8+Nz2yV93h906I/Hwd/8Ak5RUWRR7fKRTqLn42uafeUfd9EulNHPr0l2oXmpP54Mdz1S4UED+buyoyZ3NKKAS/Mi067PXlL6PlB8fNUXYoXL/w+QL12iI6/Bd1B0ELAKqoMot0pJYJaQDilNmqmTJDi4vs3atj5P7E/nOJoLX71u2D+8K9RJK0ZbsWkXLfUF1Juu64XSQlQ97kawdqH38FzdcuOUDrNhUEoexfZ/RTq2YZuvQFb2+4Z4buIydpiN9z9folB6hVsyY67oFJkqS7Tu2rv78+U5I05MDeKnZOz07x5vYdu3tXbcgr1Kf+MM7MVk2VnVP679JN+cmglNjQPCFxjYTUBV7mpQTC1MeHy4vWRodOfj5vTaT86ISfI+WLQiFNki5/Kblx+vD/RYeX3pQy3PTRlO0abhsTDZ/hOYLXvzFLXUKf5fdLs9U9tPUFah5BCwDSgN4xAA1FeHGVXbtFl/c/dveukfI+224RKe+SUn/wLl2C42uO8YZ4JoLWv86Ibk4+ddhg5RcWB5uBf3rNQLVo2kT73u71+r156QE65RFvLtvIM/tpfW6h/vHWd5KkW07eTZ3btQgWP3ntTwdoU36Rzn/Kmxf3zNB91KJZRjAMdMQZ/bRmY75uHeMt4nLrKbvphje9a730h/1UUOSCx959Wl9tyC0MNjE/a5+eWp9XqDH+ipw7dGmr9XmFWuYPydyhS1vNWbEh8voT8w1Ty2ft01OZrZrp8U+8wDVo5y5asHqjfl7pBcPwHMHU7RlS5/Uddd8nkZU+T3hgUqR8TmiBmjMemxL5nE9/bEpkqOrQp79Uh9DCLvd/NCfS6/zEp79E9hT814c/Bcf/fOs7NQvVfXj8XDVvUjd6rKuLoAUAdUB5C3MQygBgc+Ev853aRnviemzROjg+ajcv8CWC1ql794jU3TVl/7fUQHiMHxgTQeuY3bsGQatfzw6Ruifs4fUeJoLWjSd6WywkgtZbfz7Ie87EojEX7xcMCX0wZZP01HLiWomg9dA50fvDcwSvGLyDVq7P1Yv+vMhObZpHNjlP7YlLHdb50/INwfGslI3QUzdGT+3F+/cn0Z63EWPnRMrhlUFfnR5dFfTh8dEewPqMoAUA9UxlN3wOlwlpANBwhecI/vGw7SQpCFqf/v1w5RYUqf8tH0nyeuKKndPvnkj24hU7F2xh8NDZe+rP/rDGR3/XX8XO6bIXvSGgj57bX00zTH/wh0HedWpfrcsp0B3+dgjn7LeNCgqLgxB1yl7dlWEW7Fk35MBeGuVv93D5oD7KLywOwtkZA3oov6hYb369pCbeolpF0AKARoQl7QGg8Qov+JHaE5fai7f/9p2C48RG6EF5x2j5RH8OYCJo3XC8N48vEbRu/01fScnNwf88qE8QtBLbQiSC1vCTdpMkghYAoGEhiAEAEA+CFgCgwqqz0mJ5ZQIdAKAhIWgBAOqc6sxDk6oX1FiYBAAQB4IWAKDBqW7PW1Wfh+AFAEggaAEAEJPK9sTV1NDL8sqpgbCsYEp4BICqIWgBANDIlBQIK1O3LiyYUt12hR9PmARQEwhaAAAgNnHOcatImKpOuyrzPBUNcQwnBZBA0AIAAGkRZ5BKp+qEuPKGcabWr61FX8orEyCB8hG0AAAA0qQywzgr8tiaWvilvOeui/MNCYNIN4IWAAAA6qWaHBJaXrkyPZOVCX0MP204CFoAAABANZTXM1mZIaGVfWy4TCirWwhaAAAAQANQ2TmBqFkELQAAAKARqE7vGCGu8sw5l+421DlmlikpKysrS5mZmeluDgAAAIA0yc7OVvv27SWpvXMuu6KPy6i5JgEAAABA40TQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmKU9aJnZpWY2z8xyzWy6mR1SRt0hZuZKuLUM1WlqZrf618wxs1/M7EYzS/trBQAAANA4NE3nk5vZmZJGSrpU0mRJf5T0npnt6pz7tZSHZUvaKXzCOZcbKv5d0p8kXSDpO0kDJD0tKUvS/bG+AAAAAAAoQVqDlqSrJD3pnHvCL19pZkdLukTSsFIe45xzy8q45gGS3nLOjfHL883sbHmBq0Rm1kJSi9CpdhVqPQAAAACUIG3D6cysuaS9JX2YcteHkg4s46FtzWyBmS0ys3fMbK+U+ydJGmxmO/rP00/SwZLeLeOaw+T1eCVuiyr+SgAAAAAgKp3zljpLaiJpecr55ZK6lvKYHyUNkXSSpLMl5UqabGY7hOrcJeklST+aWYGkryWNdM69VEZb7pDUPnTrUalXAgAAAAAh6R46KEkupWwlnPMqOjdV0tSgotlkSV9JulzSX/zTZ0o6V9I58uZo7SlppJktcc49U8p18yTlha5bpRcCAAAAAFJ6g9YqSUXavPeqizbv5SqRc67YzL6UFO7RukfSnc650X55ppn1kjc8sMSgBQAAAABxStvQQedcvqTpko5MuetISZ9V5BrmdT3tKWlp6HRrScUpVYtUB5ayBwAAANA4pHvo4AhJz5nZNElTJF0saRtJj0mSmT0rabFzbphf/qe8oYNzJGXKGy64p6TLQtd8W9L1ZvarvKGDe8lb3fCp2nhBAAAAAJDWoOWce9nMOkm6UVI3SbMkHeecW+BX2UbR3qkOkh6XN9wwS95CF4c6574I1blc0i2SHpE3DHGJpH9LurkGXwoAAAAABMy5EtedaNTMLFNSVlZWljIzM9PdHAAAAABpkp2drfbt20tSe+dcdkUfx7wlAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0AIAAACAmBG0AAAAACBmBC0AAAAAiBlBCwAAAABiRtACAAAAgJgRtAAAAAAgZgQtAAAAAIhZ2oOWmV1qZvPMLNfMppvZIWXUHWJmroRby5R6W5vZ82a22sw2mdk3ZrZ3zb8aAAAAAJCapvPJzexMSSMlXSppsqQ/SnrPzHZ1zv1aysOyJe0UPuGcyw1ds6N/rfGSjpW0QtL2ktbF/gIAAAAAoARpDVqSrpL0pHPuCb98pZkdLekSScNKeYxzzi0r45p/l7TQOTc0dG5+tVsKAAAAABWUtqGDZtZc0t6SPky560NJB5bx0LZmtsDMFpnZO2a2V8r9J0maZmavmtkKM/vazP5QTltamFlm4iapXWVfDwAAAAAkpHOOVmdJTSQtTzm/XFLXUh7zo6Qh8sLU2ZJyJU02sx1CdbaT1yM2R9LRkh6T9ICZnV9GW4ZJygrdFlXmhQAAAABAWLqHDkqSSylbCee8is5NlTQ1qGg2WdJXki6X9Bf/dIakac656/zy12a2m7zw9WwpbbhD0ohQuZ0IWwAAAACqKJ09WqskFWnz3qsu2ryXq0TOuWJJX0oK92gtlfR9StUfJG1TxnXynHPZiZuk9RV5fgAAAAAoSdqClnMuX9J0SUem3HWkpM8qcg0zM0l7ygtXCZOVsiqhpB0lLahaSwEAAACgctI9dHCEpOfMbJqkKZIultfz9JgkmdmzkhY754b55X/KGzo4R1KmvOGCe0q6LHTN+yR9ZmbXSXpF0r7+dS+ujRcEAAAAAGkNWs65l82sk6QbJXWTNEvScc65RO/TNpKKQw/pIOlxecMNsyR9LelQ59wXoWt+aWa/kTfv6kZJ8yRd6Zx7oaZfDwAAAABIkjlX4roTjZq/xHtWVlaWMjMz090cAAAAAGmSnZ2t9u3bS1J7fz2HCknnYhgAAAAA0CARtAAAAAAgZgQtAAAAAIgZQQsAAAAAYkbQAgAAAICYEbQAAAAAIGYELQAAAACIGUELAAAAAGJG0KrL8jdKw9t7t/yN6W4NAAAAgAoiaAEAAABAzAhaAAAAABAzglZ9wlBCAAAAoF4gaAEAAABAzAha9UX24nS3AAAAAEAFEbTqsuKi5PEzJ0krZ0fvZyghAAAAUCcRtOqyjCbJ4/VLpedOSV9bAAAAAFQYQau+6DFAys0quw49XAAAAECdQNCqL85+WdrhqGR5+jPpawsAAACAMhG06otmraRTn0iWPxgmTbw7fe0BAAAAUCqCVn2S0TRanjyy7PoMJQQAAADSgqBVXx17j2Shj2/j6vS1BQAAAEBE0/KrIG2at5GGhxbACPdK7fU7qU1n6bWhXvmJQdIJ99Vu+wAAAACUiB6t+mzHo5PHG1dKL59bet38TQwjBAAAAGoJQauh2OeiaHnZzPS0AwAAAABDB+uVsoYSHnmztP0gafQ5XnnUCdJhV9du+wAAAABIokerYdluYPK4uEAaf3u6WgIAAAA0agSthur4EV4PWMIvE6P3s/Q7AAAAUGMIWg1Vv7OkC8cmy/+9MH1tAQAAABoZ5mjVZ2XN2ZKkjr1LftzG1VKbTtFz+Rul27t7x9ctifaGAQAAAKgUerQai+NHJI+fPUlaMy99bQEAAAAaOIJWY7HLScnjtfOkZ05MX1sAAACABo6hgw1JeUMJE7ruIS2bUTttAgAAABoherQao3Nfl/ockSx/co9UXBStw6qEAAAAQJURtBqj5m2k055KlifdJ710dvraAwAAADQwDB1syMJDCVN7pTJCH32zVtKCSWVfi1UJAQAAgAqjRwvS0Pelzjsly5NGSq44fe0BAAAA6jmCFqTOO0hDxiTLn9wtjf5d+toDAAAA1HMMHWwsyluRsHnr5HHTltK8iaVfK38TwwgBAACAMtCjhc0NeVfq1CdZnvIQQwkBAACASiBoYXNddpaGvpcsj79denVI2poDAAAA1DcMHWysyh1KGBoO2KSFNPej0q/FioQAAABABD1aKN+Qt6WO2ybLP76TvrYAAAAA9QBBC+Xbanfp9+8ny+9cmb62AAAAAPUAQwfhKW8oYYt2JT+uIMfb8BgAAABAgB4tVN5RtyWPXzhd2rAien/+Rml4e++WGtgAAACARoCghcrb48zk8ZKvpFHHpa8tAAAAQB3E0EGUrLyhhAlbbCet+aV22gQAAADUE/RooXoueEfqdXCy/Pm/JeeidRhKCAAAgEaGoIXqadVBOuuFZHncTdJ7V6evPQAAAEAdwNBBVEx4KGFqr1STZsljy5C+ebHsa7HBMQAAABo4erQQr9NHSc3bJsvrfk1bUwAAAIB0IWghXn2OkM7/X7L87CnSytnpaw8AAACQBgwdROWVtyJhl52TxxuWSc//tuzrMZQQAAAADQw9WqhZW+8t5axNdysAAACAWkXQQs06e7S07aHJ8uQHJFdcev38TSwFDwAAgHqPoYOovrKGEjZvI53+jHT3tl554p3Sws9rt30AAABALaNHCzWvaYvQcUvpl/HpawsAAABQC6odtMws08xOMbNd4mgQGrghY6Qttk+WJ90nFReVXj9/I0MJAQAAUO9UOmiZ2Stm9mf/uJWkaZJekTTDzE6NuX1oaLrsIg19L1n+5B7pxTPS1x4AAACgBlRljtahkm7zj38jySR1kHSBpBskvR5P01Bvlbf8e4u20bq/TqmddgEAAAC1pCpDB9tLWuMfHyPpdefcJkljJO0QV8PQSPz+Q6lbv2R57I3pawsAAAAQk6oErYWSDjCzNvKC1of++Y6ScuNqGBqJLbaVzn8rWf72xbLrM2cLAAAA9UBVgtZISS9IWiRpiaQJ/vlDJc2Mp1loVJo0Tx637pw8nv6M5FzttwcAAACopkrP0XLOPWJmX0jqKWmsc8Hus7/Im6MFRJU3ZyvsgjHSo/t5xx8Mk+ZNLPva+Rul27t7x9ct8Z4LAAAASLMqbVjsnJsmb7VBmVkTSX0lfeacWxtj29AYtemUPM5oJv30fvraAgAAAFRRVZZ3H2lmF/rHTSRNlPSVpIVmNjDe5qFRG/KOtMV2yfJXz5X/GOZwAQAAoA6oSo/WaZKe949PlLStpJ0lnS9v2feD4mkaGqyKDiXs2lf6/QfSvf5ilu//Xcr6tebbBwAAAFRTVRbD6CxpmX98nKRXnXM/SXpS3hBCID6pc66mPJyedgAAAACVUJWgtVzSrv6wwWMkfeSfby2pKK6GoRFJ9HANz5Katy693on3SxmhTtj1y0qvCwAAAKRRVYLW05JekTRLkpM01j+/n6QfY2oXsLm+p0tnhfbZeupoacFnpdfP38R8LQAAAKRFVZZ3H25ms+Qt7/6qcy7Pv6tI0p1xNg7YTO+Dk8cbV0ovnpG+tgAAAAClqOry7q+VcO6Z6jcHjV5l9tzqe7o089VkOTdLatm+9PrsuQUAAIBaUpWhgzKzw8zsbTOba2ZzzOx/ZnZI3I0DynTCSOnYu5Plp46Rls9KX3sAAAAAX1X20TpX3gIYmyQ9IOkhSTmSxpnZOfE2DyiDmbTXucnyugXSMyelrz0AAACArypDB6+XdI37f/buO1yuqlzA+PslIUAICUgRAgQUEAVFINJ7EwQEQWmKEkBBgwX1Xr1gAa9XUK8K0qVICUUQvUiR3qV3RIpcOoZeEkhIDknW/WPPuWtmcs6ckjkzZ868v+eZJ+vbe+2dNZvh5Hzzrb12SkeXbfttRHwH+BFwXteHSf3Ql6mEK28NT16X45nTap/bqYSSJEkaIP2ZOvhB4NIutl9C8fBiqTn2OAs2+16Oz9qheWORJElSW+tPovU8sHUX27cu7eX2K0IAACAASURBVJOaI4bBJofkuPw5Wx0zGj8eSZIkta3+TB38NXBsRKwF3EbxLK1NgInAt+o3NGk+rfUFeODcon3qFrB9D08fcCqhJEmS6qQ/z9E6KSJeAr4LdD7E6FFgz5TSX+o5OGkefblna5uf5ERr6gtwwT7d95UkSZLqqF/Lu6eU/ieltElKaYnSaxPgrxExvs7jk+pjvYOKqYWdnrqx52M6psMRY4tXrYROkiRJqtKvRKsbqwNP1/F8Uv1sczhM/GuOL9gH7jipeeORJEnSkNafe7SkwaMvUwmXXTO301y4/qcDNy5JkiS1tXpWtKTWse1PIYbn+JVHa/fvmOE0QkmSJPWaiZba07oHwN5/yPHvt4e/HdO88UiSJGlI6fXUwYhYs4cuq83nWKTGWmnj3J77Htz8y+aNRZIkSUNKX+7ReoDimVnRxb7O7akeg5L6rfyerb5M8dv5OLj6RzDzrSK+8SjY+JDu+/vMLUmSJNXQl0TrAwM2Cmkg9GWhjI9+FlbaBI5du4hvOw4evXRgxydJkqQhq9eJVkrp2YEciNR0o9+f24suC28+k+MZr9c+1gqXJEmSyrgYhtSVA2+ECfvl+IztmzUSSZIktSATLbWPzqmER0ztueK04KKw3c9y/O6buf36kwMzPkmSJA0ZJlpSb2z2vdw+bZuel4LvmO5ztyRJktqYiZbUG+sdmNtzZrkUvCRJkmoy0VL76stUwnK7nACjlszxdf8Js2fVPsYKlyRJUlvpy/LuAETE/XT9vKwEzAT+FzgzpXTDfI5NGpzW2BU+uAUcvUYR33kyPH1zM0ckSZKkQaY/Fa0rgQ8C04EbgBuBd4CVgbuBZYFrI2KXOo1Raoy+VLgWXjy3Ry0BrzyS4zR3YMYnSZKkltGfRGtJ4NcppU1TSt9NKX0npbQZ8CtgkZTSJ4H/An5Uz4FKg9aXr4dVtsnx+XvD2y92379jhtMIJUmShrj+JFp7AOd3sf0PpX2U9q/W30FJLWX0UrD7WTl+5hY4devmjUeSJElN159EayawURfbNyrt6zxvD6sDSINcxVTCUbX7RuT2sh+HmW/leMoDtY91oQxJkqQhpz+J1nHAyRHx24jYJyK+EBG/BU4Cji312Q64v7cnjIhJEfF0RMyMiHsjYtMafSdGROritVA3/Q8t7e/hwUdSnXzpEtj4kByfuQOc87nmjUeSJEkN1+dVB1NK/xURTwNfB75Y2vw48JWU0nml+GSKxKtHEbEncAwwCbgVOAi4IiJWTyk9181h06iamphSmlndKSLWBQ4EHurNWKRudVa3OtWqPA1fADb/Htxayu2HjYDnbsv733ym9t/VMR2OHFe0D5vSt6XnJUmSNCj06zlaKaVzU0obppTeV3ptWJZkkVJ6t6vEpxvfAU5PKZ2WUno0pXQI8DzwtdpDSC+Vv6o7RMRo4FzgK8CbvX93Up1Nuh3WPyjHZ+3YvLFIkiSpIfr9wOKImFA2dXDtfp5jJDABuLpq19V0fR9Yp9ER8WxEvBARl3Xz958AXJ5SurYX41gwIsZ0voBFe/se1Kb6shT8mOVg68NzXP5w4ym9nmErSZKkFtLnRCsilo6I6ymemXUscDxwb0RcFxFL9fF0SwLDgZertr8MLNPNMY8BE4Gdgb0pFuC4NSJWLRvjXhQJ3KG9HMehwNSy1wu9PE7qu+1/kdtn7giXHdJ9X3CxDEmSpBbU38UwxgBrlKYNLg58tLTt2JpHdi9VxdHFtqJjSneklM5JKT2YUrqFYkn5fwLfAIiIFYDfAl/ow/TFo4CxZa/l+/4WpF766Gcr44cuzO057zV2LJIkSRoQ/Um0tge+llJ6tHNDSukR4GDgU30812vAHOatXi3NvFWuLqWU5lJU1zorWhNKx98bEbMjYjawOfDNUjy8i3PMSilN63wBb/fxfajd9WUqYbl9L4NxZTNfz/o0vPp4/ccnSZKkhupPojUM6Opr9/f6er6UUgdwL7Bt1a5tgdvmPWJeERHAWsCLpU3XAR8rbet83UOxMMZaKaU5fRmjNKCWWwf2vTTHLz0Ev9+ueeORJElSXfR5eXfgeuC3EbF3SmkKQEQsBxxNkeT01W+AyRFxD3A7xXLs4ymWiCcizgb+lVI6tBQfDtwBPEExXfGbFMnUwQAppbeBh8v/goiYDryeUqrYLg2YviwHH2XfT6yyDfxv2fotb78Ei1YVfF3+XZIkadDrT0Xr6xSr8j0TEU9GxP8CT5e2fbOvJ0spXQAcAvwYeADYDNghpfRsqct4YNmyQxYDTgEepVidcDlgs5TSXf14L9LgsvtZsONvcnzGp1yZUJIkqQX154HFzwPrRMS2wIcpFq54pDfLqNc454nAid3s26Iq/jbw7T6ef4seO0kDqbzCVbO6FfDxveDy7xTxOy/D5N26798xw+qWJEnSINTv52illK5JKR2XUjo2pXRtRKwQEb+v5+CktrfqJ2FO2XO35nqLoSRJUivod6LVhfcB+9bxfNLQ1JcVCj/3e9i47DlbF34R3n1rYMcnSZKk+VbPREtSvcUw2Px7OX7qRjhrp+77+3BjSZKkQaE/qw5Kqqe+rFA4Zjl446mBH5MkSZLmixUtqZXsdwWssH6Or/vP5o1FkiRJ3ep1RSsi/txDl8XmcyySerLIkvD5C+AXKxXx/WfX7u8ztyRJkpqiL1MHp/Zifw+/9UnqUU9TCYePzO1RS8CM14v2PWfABNejkSRJGgx6nWillPYbyIFI6od9L4OTNizaV/8A/nllc8cjSZIkwHu0pNa2yFK5PWIheOaWHKc0b39XJZQkSWoIEy1psOvtc7cOuAaWm5Dji/aDd14Z+PFJkiRpHiZa0lCxxMrwxYtz/MTVcOqWzRuPJElSGzPRkoaSYcNz+/1rwLtv5ri83cmphJIkSQPCREtqNRVTCUd132/i5bDxITk+ZUv432sHfnySJEky0ZKGrOEjYfPv5Xj6K3Dhl5o3HkmSpDZioiW1i/UOAiLHz9w6bx+nEkqSJNVFXx5YLGmw6enhxuW2ORxW/SSc+9kiPm93WPfLAzs+SZKkNmVFS2onK25YGd99WnPGIUmSNMSZaEntas9zYfQyOf7b0TB3do47ZjiNUJIkqZ+cOigNJX2ZSrjylvCV6+Ho1Yv45v+Gp24c0OFJkiS1CytaUjtbeLHcHjkaXri7+74ulCFJktRrJlrSUFbxzK1Favf98rWw/Lo5vv6nAzs2SZKkIcxES1JhsfGwz59yfN9ZzRuLJElSizPRktpJTxWuYWW3bS44Jrcf/jOkVNnXqYSSJEndMtGS1LUvXpzbl3wdzt29eWORJElqMa46KLWzWqsULjY+t0csBM/dluP33oUFFh748UmSJLUoK1qSenbgTfCh7XL8++3hxYcq+ziVUJIk6f+ZaEnq2WIrwOfOyPHrT8BZOzVvPJIkSYOciZakrGKxjFHd9/vwTjB3do5ff3LePla4JElSGzPRktR3u/4Odj4ux6dvC/ee2bThSJIkDTYmWpL6LgI++tkcz54JVx3WvPFIkiQNMiZakrrW0zO3ym37n8XKhJ1uO65Ivjp1zHAaoSRJaismWpLm37pfhv2vyvGNR8EpWzRtOJIkSc3mc7Qk9U6tZ24BLLlqbo9eBt56LsczXq/s2zEdjhxXtA+b0nPFTJIkqcVY0ZJUf1+9BTY+JMdn7ti8sUiSJDWBiZak+hu5CGz+vRzPeC23vUdLkiS1ARMtSf3Tl8Uy1pmY27/bDB65pHK/z9ySJElDjImWpIG31Q9z++0X4eKvNm8skiRJDWCiJak+elvh2vS7MHzBHN/yG5jTUdnHCpckSWpxJlqSGmvT78KBN+b4ll/BGTs0azSSJEkDwuXdJQ2M8uXgq6tSi6+Y2wsvDq88kuNZ78CCowd+fJIkSQPIipak5jrwJvjIzjk+eRN46ILKPk4llCRJLcZES1JzLbIk7Hpyjqe/Apd9u3njkSRJqgMTLUkDry9LwW/1QxhZNnXwrlMgpRx3zLC6JUmSBj0TLUmDywaT4Ku35vjaI+DPX2nacCRJkvrDxTAkNV75Qhkwb2Vq9FK5PWwBePyv3Z+rYzocOa5oHzal54qZJElSA1jRkjS4feliGLt8jm/4WfPGIkmS1EsmWpKar9Y9XOPWhv2vyvG9ZzR2bJIkSf1goiVp8Ft48dwes1xu/89BMG1KZV+XgpckSYOA92hJGnxq3cM18a9w7MeL9qOXwv9e29ixSZIk9YIVLUmtpXxq4fLrwnvv5vj5O+ftb4VLkiQ1gYmWpNb1xYvh08fmePJucO1PmjceSZKkEhMtSYNfxWIZo/L2CPjY58o6Jrjrd7XPZYVLkiQ1gImWpKFjj8kwepkc/+XrMO1fzRuPJElqWyZakoaOVbaGr1yf43/8GU7etHnjkSRJbctES1JrqfXMLYCFF8vtFdaH2TNz/PgVkFKOO2Y4jVCSJA0IEy1JQ9c+f4bdTs3xnw6AiyY2bTiSJKl9+BwtSa2t1jO3IuDDO+Z42ALwxDU5nvNe5bk6psOR44r2YVO6rphJkiT1ghUtSe3jgGtghQ1yPPkzzRuLJEka0ky0JLWPpT4E+/wpx689ntvTX5+3v0vBS5KkfnLqoKShpdZUQiimE3b66Ofg4YuK9kkbwgaTBn58kiSpLVjRktS+tv95bne8Azf/Msdz5zR+PJIkacgw0ZI0tPW0HHynXU6ExVbM8Tm7wRtPV/ZxKqEkSeolEy1JAljjM3DQTTl+4W44bevmjUeSJLU0Ey1J7aWiwjWqct/wkbm94iaVDzt+/cl5z2WFS5IkdcNES5K68vk/wHZH5vi0reGWXzdvPJIkqaWYaElqX7Xu34phMGFijud0mGhJkqReM9GSpN74zMmwyNI5vuwQmFH27K2OGU4jlCRJ/8/naElSp1rP4Fp9Z/jg5vCbjxTxQxfCE9c0dnySJKllWNGSpN5aaGxuL/URePfNHL/yaGVfF8qQJKmtmWhJUn/sfyVs9cMcT96leWORJEmDjomWJHWn1mIZwxeADSblOM3N7QfPh5Qq+1vhkiSprZhoSVI97Hlubl/+XfjD3s0biyRJajoTLUmqhxXWz+0RC8HTN+d47pzGj0eSJDWViZYk9VatqYTlvnxtZeJ1+rbw5PWVfZxKKEnSkGaiJUn19r4Pwj5/yvGrj8EF+zRvPJIkqeFMtCSpvyoqXKMq90XZj9f1vwrDR+b4msPnrWJZ4ZIkaUgx0ZKkgbb1j+Ggsnu27j4VTt2yeeORJEkDbkSzByBJQ0JndatTdVVqsfG5PXYFmPp8jt9+ERZdtrJ/x3Q4clzRPmxK7XvCJEnSoGNFS5Ia7Ss3wHoH5fjkTeH2E5o3HkmSVHcmWpI0EGqtUDhyFGxzeI7fmwE3/CzH8zzseIb3b0mS1GJMtCSp2XY6BkYtmeOzdoKnbmzacCRJ0vzzHi1JaoRa93CtuQd8aHv4zYeLeMr98IfP5/3zVLi8f0uSpMHOipYkDQYLjcnt9Q6E4QvmePLOjR+PJEmaLyZaktQMte7h2uYImHR7jl95NLcfuhDmzq7s7zO4JEkadEy0JGkwWnSZ3N7oW7l92SFwis/gkiRpsDPRkqTBbqNv5PbCi8MbT+b46Zvn7S9JkprOxTAkaTDo6YHHnSbdAXefBjf/dxGfvxes+snKPi6WIUlS01nRkqRWsuCisMm3cxzD4Ymrc+w9WpIkDQomWpI0GFUsljGq+35fuR5W3jrHv9sMHr+iso+LZUiS1HAmWpLUypZcFfacnOO3X4Q/HdC88UiSJMBES5IGv1pLwVfb6JswbIEc33EizHkvxx0zrG5JktQAJlqSNJRs8R9wwDU5vv6/4PfbN288kiS1KVcdlKRW09MKhUt9KLcXXhxeLXvg8RtPVfZ1hUJJkgaEFS1JGsoOuhk+vleOz7C6JUlSI5hoSVKrq3UP16glYMff5DjNze0bfgazZzZmjJIktRmnDkrSUFNrauEX/gzn7la0bz8BHr+y8linEkqSVBdWtCSpnSy7Zm4vsjS88WSOO2Y0fjySJA1RgyLRiohJEfF0RMyMiHsjYtMafSdGROritVBZn0Mj4u6IeDsiXomIiyNitca8G0lqEQfeCGvumePTtoKnb6ns48OOJUnql6YnWhGxJ3AM8DNgbeAW4IqIGF/jsGnAsuWvlFL5jQabAycAGwDbUkyRvDoinAMjqf1U3MM1Km9feDHY6egcv/UcnL/nvMdLkqQ+a3qiBXwHOD2ldFpK6dGU0iHA88DXahyTUkovlb+qdm6fUjozpfSPlNKDwH7AeGDCgL0LSWp1EyZWxk9cM28fK1ySJPVKUxfDiIiRFMnPz6t2XQ1sVOPQ0RHxLDAceAD4UUrp/hr9x5b+fKObcSwILFi2adFa45akllVroYztjoSP7AznlBbL+OO+sMZujR2fJElDRLMrWktSJEsvV21/GVimm2MeAyYCOwN7AzOBWyNi1a46R0QAvwH+llJ6uJtzHgpMLXu90Pu3IElDyPgNcjuGwT/+nOPypeGhWDzD6pYkSV1qdqLVKVXF0cW2omNKd6SUzkkpPZhSugXYA/gn8I1uzn08sCZFUtadoyiqXp2v5fswdkkamva9FJYsW0fojE/Nu1iGJEnqUrOfo/UaMId5q1dLM2+Vq0sppbkRcTcwT0UrIo6jqHxtllLqtkqVUpoFzCo7rjd/tSS1vlpTCcetDftfCb/8QBG/9Pfai2X4DC5Jkv5fUytaKaUO4F6KlQHLbQvc1ptzlKYGrgW8WL4tIo4HdgO2Sik9XZ8RS1KbGVF2++on9odhZd/PPXBu48cjSVKLaHZFC4r7pyZHxD3A7cCBFCsEngwQEWcD/0opHVqKDwfuAJ4AxgDfpEi0Di475wnA54FdgLcjorNiNjWl9O6AvyNJalW1Klyf/C/4xAFw8sZFfO3hjR2bJEktpOmJVkrpgohYAvgxxTOxHgZ2SCk9W+oyHii/A3sx4BSK6YZTgfsppgbeVdanc2n4G6v+uv2AM+s5fklqK+/7QG4PXwDmvFe0HzgPPrZ7ZV+nEkqS2ljTEy2AlNKJwInd7NuiKv428O0ezudNVpI00Pb5Hzhrp6L913+D249v7ngkSRpEBkWiJUkapGpNJVzqw7k9agl485kcP3cnjF+/8lxWuCRJbWSwLO8uSWplk+6ALQ7N8Tm7wdU/at54JElqMhMtSVLvdVa4jpgKI0dVbt+o/HGGCe45vfa5Oqb7wGNJ0pBloiVJqr+9zoMx43J8/t4w5f7mjUeSpAYz0ZIk1d8Ht4Cv3JDjp2+CM3ds1mgkSWo4Ey1JUv9UTCPsYmGLBRfN7TX3gCj7J+eK/4AZr+e4Y4bTCCVJQ4qJliRp4O10DBx4Y47vPxtO3qRZo5EkacC5vLskqT5qLQUPsMQqub306vDKIzl+9rbKvi4FL0lqcVa0JEmNt/9VsP3Pc/zHLzVvLJIkDQATLUlS4w0bDuuUJVcxPLdv/IX3aUmSWp6JliRpYPS0WEa5L12a27f9Fn63WeV+n7klSWoxJlqSpOZb6kO5PXYFePvFHJffy9XJxEuSNMi5GIYkqTF6Wiyj00E3wZ2/g5t+UcS/3x7WP2jgxydJUh1Z0ZIkNUfF1MJRefuIhWDjb+V47my4/YQcp9S4MUqS1E8mWpKkwe1zZ8CYcTn+/Xbwjz9X9nEqoSRpkHHqoCSp+WpNK/zQdrDSJvCrVYv45YfhL1/P+9NcCL83lCQNLv7LJEka/MpXLdzsezBqiRyfvzdM+1fjxyRJUg0mWpKk1rLJIXDwXTl+5hY4devKPk4llCQ1mVMHJUmDT08rFC6wcG6PWxum3J/j6a/BIksO7PgkSeqBFS1JUmv70l9g8+/n+NQt4fErctwxw+qWJKnhTLQkSYNfxVLwi1TuGzaicjn4Ga/Dnw5o7PgkSapioiVJGlo2mAREjv92TOV+79+SJDWA92hJklpPrXu4tvohrPpJmPyZIr7j+Lxv1juw4OjGjFGS1NasaEmShp4V1svtJVbN7RPXhztOrOxrhUuSNABMtCRJra/WPVz7Xpbb774J1/9XjmfPbMz4JEltx0RLkjS0DRue2zsdDYuNz/FJG8N9Z1f2t8IlSaoD79GSJA095fdwlSdLa+4Ja+wGv1ixiN9+Ea78j7w/zYXwO0hJ0vzzXxNJUnsZvkBub/tTWGTpHE/+DLz8cGV/K1ySpH4w0ZIkta91D4BJt+X4hXvg99s3bzySpCHDREuSNLTVWigDYIFRuf2RnYvpg51uPbayitUxw+qWJKlXvEdLktReaj2Da9eTYa0vwPl7FvFNP4e7Tmns+CRJQ4IVLUmSyn1g09xe/APw7hs5fvTSxo9HktSSrGhJktpbrQrXQTfB3/8Il3+3iC//duWxHdPhyHFF+7ApXU9NlCS1JStakiR1Z9gI+PjeOS6/n+vPB8GbzzZ+TJKklmCiJUlSb335utx+7FI4ZfPK/S4FL0kqMdGSJKlcrVUKF1kqtz+wGczpyPFNv4TprzVmjJKkQc97tCRJqqX8Hq7yKtVe58NTN8AF+xTxrcfAHSdVHus9XJLUtqxoSZLUHxGw8lY5HrcOzJmV4ysPtcIlSW3MipYkSb1Va4XCfS+F5++Cc3Yt4vvOgocvqjzeCpcktQ0rWpIk1UMEjF8/x8t+vDIRe/B8mDun8eOSJDWFFS1JkvqrVoVr4uXwyCXwl0lFfPl34a5Ty/rOsLolSUOYFS1JkgZCDIM1PpPjhRaDVx/L8UMXNH5MkqSGMdGSJKleai0N/7XbYP2v5vjqH+T260/6DC5JGmJMtCRJaoSFF4Otf5zjxVbM7d9tBhftX9nfxEuSWpqJliRJA6VWheuAa8qCBP+8MocP/wlmz2zIECVJA8NES5KkZoiyf4IPvAk+vneOL/kGHDehsr8VLklqKSZakiQ1SkWFa1TevuSqsOOvc7zosvDumzm+/Lsw9YXGjVOSNN9c3l2SpGaotTT8wXfCk9fDHycW8YPnw999+LEktRIrWpIkDTbDRsCqn8zxSpvA3PdyfN1/wozXGz8uSVKvWdGSJGkwqFXh+vyF8MytcN7uRXznyXD/5LK+PvxYkgYbEy1Jkgaj6sRrpY1ze5mPwUt/z/GDf2jcuCRJveLUQUmSWs1+V8Jup+X4mh9W7neFQklqOitakiS1guoK14d3yO2FxsLM0r7z9oRNv9PYsUmS5mFFS5KkVnfAtbn9zC0wedfK/Va4JKnhTLQkSWpF5c/kGrtc3r72F2HYAjmevBs887fGj0+S2pyJliRJQ8mnfgFfuzXHz98B5+2R45SscElSA5hoSZLU6sqrWyMXgbHL530T9oPhC+b47J3hyRsqjzfxkqS6M9GSJGko2+5nMOn2HP/rXrjgCzlOqfFjkqQ2YKIlSdJQt+gyub3eQTBioRyf8Sn451WNH5MkDXGR/CZrHhExBpg6depUxowZ0+zhSJI0fzqmw5HjivZhU2D6a/DbNbvu+90n4Ner5r4jF2nMGCVpkJo2bRpjx44FGJtSmtbb46xoSZLUbhZZMrc3/HplMnXRxIYPR5KGIhMtSZKGuurFMspteRhMujPHz5atWPjOKy6UIUn9ZKIlSVK7G/W+3F5th9w+eWO49djGj0eShoARzR6AJElqsM4KV6fyStWnj4XH/5q33/TzvK/zGVzl93t5D5ckdcmKliRJ6toux8OYcTk+69Pwwj3NG48ktRArWpIktbvyCld5dWuN3eBD28N/r1LEU+4rHnhczgqXJHXJipYkScqqF85YYFTe9/G9gcjxFd+HqS80fIiS1ApMtCRJUu/s+Gs44Ooc3z8ZTtqoeeORpEHMREuSJHWvusL1/jXyvpU2gbmzc3zvWTDrHZeDlyRMtCRJUn99/kL44sU5vupQuGCfyj4+h0tSm3IxDEmS1HvVS8OvsF5uj1gInrohx3NnwzB/1ZDUnqxoSZKk+tj/KlhmzRyfsgX8o6zi1THD6paktuHXTJIkqf+qK1z7Xgq/WLFov/EU/GVS3pdSY8cmSU1kRUuSJNXP8AVye7N/hwUXzfG5n63s6/1bkoYwEy1JkjQwNvk2TLojxy89lNvP3zlvfxMvSUOIUwclSVL9VE8lLDdhItx7ZtGevCt8cIvGjEmSmsCKliRJaowtf5jbw0bAUzfm+MnrYe6cyv5WuCS1MBMtSZLUeAfdAh/bPccX7AMnrNd9f0lqMSZakiRp4HROJTxiKowclbcvviJ8+rc5XnhxePvFHF95KLzzcuW5rHBJaiEmWpIkqfm+cR985qQc33cWnLhh88YjSfPJREuSJDVGRXVrkcp9IxaE1XfJ8fKfgNkzc3zPGTB3do59+LGkQc5ES5IkDT5f/AvscXaOr/4BnP7J5o1HkvrI5d0lSVJzVC8FX16ZioBVtsnxwovDq4/l+OV/VJ6rYzocOa5oHzZl3oqZJDWYFS1JkjQ41Jpa+NW/wYT9cjx5FyRpMDPRkiRJg9/Ci8N2PyvbELl5yTfgjacr+7tCoaQmc+qgJEkanGpNLdz3cjhrh6L98J/gHxfXPpdTCyU1mBUtSZLUepb6UG6vvDWkOTm+5nCY8XrjxyRJZUy0JElSa9tzMnzpLzm++1Q4aaPaxzi1UNIAM9GSJEmtoWKxjFGV+5ZfN7ffvwbMejvHtx0HM6ciSY1koiVJkoaW/a+CXU7I8Y1HwQnrdd/fhx9LGgAmWpIkqfXUWgo+hsEau+Z4ydUqK1zX/gTeebUx45TUtky0JEnS0PaV62D3M3N81+/gpA267+/9W5LqwOXdJUlS66u1FHwMg1U/meNl14IXH8jxXacM/PgktR0rWpIkqb1MvBz2ODvHN/8yt9Pcxo9H0pBkRUuSJA09NStcAatsk+PR74d3Xi7ap38SNv9+5bl82LGkfrCiJUmS2tsB1+b2K4/AH/et3d97uCT1gomWbiBqMgAAIABJREFUJEka+mqtUrjAwrm94cEwYqEcX7Q/vPV8Y8YoaUgx0ZIkSeq05Q9g0h05/ueVcMrmzRuPpJY1KBKtiJgUEU9HxMyIuDciNq3Rd2JEpC5eC/X3nJIkqc1UVLhGVe4bvXRuj98IZs/M8f3nwpyOyv5OJZTUhaYnWhGxJ3AM8DNgbeAW4IqIGF/jsGnAsuWvlNL//xTs5zklSZIqfeGP8JmTcnzFv8PJNb677Zhh0iUJGASJFvAd4PSU0mkppUdTSocAzwNfq3FMSim9VP6qwzklSVI7qnX/VgSsvkuOF1kKppbds/XAuTDnvcaMU1JLaWqiFREjgQnA1VW7rgY2qnHo6Ih4NiJeiIjLImLt+TlnRCwYEWM6X8CifX0vkiSpDUy6HbY5Isd//Xc4eZPu+zutUGpbza5oLQkMB16u2v4ysEw3xzwGTAR2BvYGZgK3RsSq83HOQ4GpZa8Xev0OJElS+1hgFKx3YI5HLVlZ4Xr0ksaPSdKg1OxEq1OqiqOLbUXHlO5IKZ2TUnowpXQLsAfwT+Ab/T0ncBQwtuy1fB/GLkmShpJaUwmrHXwHbH14ji//Tm6nLn7tsMIltY1mJ1qvAXOYt9K0NPNWpLqUUpoL3A10VrT6fM6U0qyU0rTOF/B274YvSZLa2gKjYP2DcjxydG6fuSM8UX0ng6R20dREK6XUAdwLbFu1a1vgtt6cIyICWAt4sV7nlCRJ+n99qXB95YbcfvEB+OPEHKe58/a3wiUNWSOaPQDgN8DkiLgHuB04EBgPnAwQEWcD/0opHVqKDwfuAJ4AxgDfpEi0Du7tOSVJkvqtM/HqVJ4gLbx4bm8wCe49E96bUcSnbQMbf6v2uTumw5HjivZhU3pO7CQNWk1PtFJKF0TEEsCPKZ6J9TCwQ0rp2VKX8UD5V0CLAadQTA2cCtwPbJZSuqsP55QkSRpYW/0QNvgaHPOxIn71Mbi47EkzaS5Es+/ikDRQmp5oAaSUTgRO7GbfFlXxt4Fvz885JUmS6qa8wlU9/W/UErm96b/B3afBzLeK+IwdKhfSkDSk+DWKJElSI2z6HTj4zhy/9BCc+9nax3gPl9SyTLQkSZLqpaeFMxZcNLfX2RdieI4vngSv/nPgxyipIUy0JEmSmmH7o+Ar1+f4kYvh1C27798xw+qW1EJMtCRJkpplyVVze7UdgbKHHN/487xioaSWMygWw5AkSRqSai0FX+2zp8Irj8JpWxfxbccWVa7uuBS8NKiZaEmSJDVKT4nX0h/J7UWXhbeey/Fr3r8ltRKnDkqSJA1GB90M6x+U47N2qt3fFQqlQcVES5IkaTAauUjlc7bS3Ny+7icw/bXGj0lSr5loSZIkNUtPy8GX2/vC3L7zd3Di+rX7W+GSmspES5IkqRUst05uL7sWvPdujm89tjKW1HQuhiFJkjRY9HaVwomXw5PXwYVfKuKbfg73T659blcplBrKipYkSVKriYBVtsnxmHEw7V85fuGexo9JUgUrWpIkSYNVeYWr1n1WB90Md50KN/2iiM/eGT6yc/f9O2ZY3ZIGmBUtSZKkVrfAKNj4W2UbAh69JIez3mn4kKR2Z6IlSZLUCvqyQuEBV8OKm+T45E3goQu77+8KhVLdmWhJkiQNNe9fAz5/QY6nvwKXHZLj2bMaPyapzZhoSZIktaKeKlwRub3VD2Hk6ByftEFupzTvsVa4pPlmoiVJkjTUbTAJvvq3HM96O7cv+AK88VTjxyQNcSZakiRJQ0FPFa7RS+f2Hufk9lM3wqlb1T63FS6pz0y0JEmS2s34sqmDH9gc5nTk+JbfwNQXGj8maYgx0ZIkSRqKertK4V7nwW6n5viWX8EJ6+d4znvzHmOFS+qRiZYkSVI7i4AP75jjFTcByhbIOGF9uPW3DR+W1OpMtCRJkpR94UKYdEeO33kJbvpFjt96rrJ/xwyrW1IXRjR7AJIkSWqAzqmE0HNCtNj43N75eLj7NHjxgSI+eRP42OcGZozSEGKiJUmS1G7Kky6onXh9dDdYY1c4arkinjsbHvxD3v/q45X9O6bDkeOK9mFTat8fJg1hTh2UJElSbeUPP/7SX4qVCjudVXZ/V1cPP5balImWJElSu+vtCoUAy68Le5+f4yj7dfL8veDlhyv7u0Kh2pSJliRJkvpv/6tz+5lb4PTtavc38VKbMNGSJElSpb5UuBZfKbdX34WKpeEvngTP3j4QI5QGPRfDkCRJUm29XTzjMyfBegfCmaX7th65uHh1mvUOLDh64MYpDSImWpIkSeqbWkvFj1s7t9faBx75n9znhHVh7S9W9neVQg1RTh2UJEnSwNjhl/CN+3M8cyrcfnyO336xsr8PP9YQYkVLkiRJ/dfTtMLyqYKfPR3uPAleuKeIT9oYPrHfwI9RagIrWpIkSWqM1T4FX7okx7Nnwh0n5bg6SXOFQrUwEy1JkiTVT19WLNzjbFh69RyfttXAjk1qIBMtSZIkDZxaidcq28ABZc/hmvF6bv/9jzB3TmV/K1xqISZakiRJap4o+3V0m//M7Uu/Badt0/jxSHVioiVJkqTGqVXhWuvzub3QWHjt8Rz/8ypIcyv7W+HSIGaiJUmSpMFn0h2w0TdzfNF+cKr3cKl1mGhJkiSpeSoqXKPy9oXGwhb/keMFF4XX/pnjv19khUuDmomWJEmSBr+D74Ytf5DjS78Jv9++eeORemCiJUmSpMGh1v1bC42BDQ/O8YKLwssP5/iZWyGlHHfMsLqlpjLRkiRJUuv56m0wYb8cn7c7nLlj88YjVTHRkiRJ0uBUq8K1yBKw3c9yPGIhePGBHP/9wsr+3r+lBjPRkiRJUus7+C7Y6Fs5vuqw3J719rz9Tbw0wEy0JEmS1BpqVriWhC2+n+PR78/t49eFG3/emDFKJSZakiRJGnq+fH1uz5oGtx2b4zefnbe/FS7V2YhmD0CSJEnql84KV6fyBGnEgrn92dPh9hNgyn1FfPLG8JFP1z53x3Q4clzRPmzKvBU0qQdWtCRJkjS0rfYp2PfSHKe58Mhfcly9NLxUB1a0JEmSNDSUV7iqp/9F5PYB1xQVrkcuLuLzdodl16p9bitc6iMrWpIkSWov718DPnNijquXhn/gPJg9q/Hj0pBioiVJkqShp9YKhdUOvgs2PiTHf/03OHHD7vt3zHDhDPXIREuSJEntbZElYfPv5XjRZeGdl3J841HwzquNH5damvdoSZIkaeirtUJhtUm3w8N/hsu/U8S3HQd3ntJ9f+/fUhesaEmSJKn91JpaOHwkfHyvHI9bB+aU3bP1py/XPrfP5BImWpIkSVJt+14KX/hTjp++MbcfPN+FM9QlEy1JkiSplghYsWxxjHX2ze3Lv1t74QywwtWmTLQkSZKkvqxSuNWPcnv0MlULZ/wCpr82MGNUSzHRkiRJkvpr0u2ww69yfNtv4YT1ah9jhastmGhJkiRJ1Xpb4RqxIKz1+RyPWxtmz8zxRfvBM7cO3Dg1aLm8uyRJktST8uXha1Wh9r0Mnrsdzv1cEf/zquLV6b13YYGFc9wxw6XhhygrWpIkSVK9RMCKG+V4nX0rE6vjP1E8AFlDnomWJEmS1Bd9WThj+6PgG/fl+N03iwcgd5pyX2V/798aMky0JEmSpPnRU+K10Njc/uzpML6s4nXeHrk9d87AjVENZ6IlSZIkNcpqn4J9Lsrx8JG5feYO8K97K/tb4WpZJlqSJElSPfVlauFBt+T2S3+Hsz49sGNTw5hoSZIkSc0yaoncXnOPyn03/zfMeKNymxWulmGiJUmSJA2k3la4djoGvvg/Of7b0T78uIWZaEmSJEmNVJF4jarct8L6ub306vDejBxfeShMfaExY9R8M9GSJEmSBqMDroE9zs7xfWfBSRt131+DiomWJEmS1Cy1phVGwCrb5HilTWHu7Bxf+i1485kcd8xwGuEgYqIlSZIktYLPXwD7Xpbjv/8RTt60eeNRTSOaPQBJkiRJJZ0Vrk7Vlanl1sntlbeCJ6/P8Q1HVvbtmA5Hjivah03peal51ZUVLUmSJKkV7XkOfOmSHN/7+9wuX0RDTWFFS5IkSRqseqpwLf+J3F7qw/DqY0X7pE1gs+9W9rXC1VBWtCRJkqShoLy69c5L8Nd/z3FKjR9PmzPRkiRJklpFzVUKy3613+YIWHjxHJ+2NTz858r+Pux4QJloSZIkSUPNegfC127P8auPwSVfz3FX93CZeNWV92hJkiRJrar8Hq7q5GihMbm9+X/A3afCjNeL+IT1Yd0vN2aMbcqKliRJkjTUbfxNOPiuHM94HW76RY7ffqnxYxrirGhJkiRJQ0FPKxQusHBu73I83HYCvPpoEZ+4AXzsc2XHznCFwvlkoiVJkiQNRbUSrzV2g9V3haOWK+I5HfDAeXn/iw9Vnsul4fvMqYOSJElSO4rI7S9eDKtsk+Nzd8ttl4bvFxMtSZIkqR3UWhp+hfVgj7NzPKxs4tvp27o0fD+YaEmSJEmq9OXrc/uVRyqXhu/oYml4zcN7tCRJkqR2VOserjHjcnvz78Pdp5UtDb8uTJhYeS7v4ZqHFS1JkiRJ3dv4W5VLw7/7Jvzt6By7NHyXrGhJkiRJqv3w4/Kl4Xf9Hdx+ArxUWpnwxA1hnS9W9rfCZaIlSZIkqUqtaYUf+TR8eKeypeFnFVMLO01/DRZZsjHjHMScOihJkiSpb8qXht/7fFhuQo5PXB9u+Fll/zZcpdCKliRJkqTaalW4PrA5rLRZrnC9924xtbDTjNdh1BJlx85oi2mFVrQkSZIkzZ/yCtfuZ8EyH8vxCevBdf/Z+DE1mRUtSZIkSX1Tq8K16rawyjaVFa47T877X3mk8lxDdOEMK1qSJEmS6qu8wrXHZBi3To7P3jm357zXuDE1mBUtSZIkSfOnVoVrla1h5a1yhWvYCJg7u2ifvAlsMKnyXEOkwmVFS5IkSdLAKq9wHXhzbk99Hq46NMcz3mjcmAaYFS1JkiRJ9VWrwjV66dze9qdw50kwbUoRHzcBPrJTY8Y4wKxoSZIkSWqOdQ+Ar92W4zmz4OE/5bgzAWtBgyLRiohJEfF0RMyMiHsjYtNeHrdXRKSIuLhq++iIOD4iXoiIdyPi0Yj42sCMXpIkSVJNnRWuI6bCyFGV+4aPzO2Jl8Oae+Z49PsbM74B0PSpgxGxJ3AMMAm4FTgIuCIiVk8pPVfjuBWBXwG3dLH7aGBLYB/gGeCTwIkRMSWl9Jf6vgNJkiRJvVZrWuG4tYvXQxcU8bDhjR1bHQ2GitZ3gNNTSqellB5NKR0CPA90W4GKiOHAucDhwFNddNkQOCuldGNK6ZmU0inAg8AnujnfghExpvMFLDqf70mSJElSG2tqohURI4EJwNVVu64GNqpx6I+BV1NKp3ez/2/AzhGxXBS2BD4EXNVN/0OBqWWvF3r5FiRJkiTNj4ppha25lHtXmj11cElgOPBy1faXgWW6OiAiNgYOANaqcd5vAqdSJEyzgbnAl1NKf+um/1HAb8riRTHZkiRJkhqvemphi2p2otUpVcXRxTYiYlHgHOArKaXXapzvm8AGwM7As8BmFPdovZhSunaevzylWcCssr+nz29AkiRJkjo1O9F6DZjDvNWrpZm3ygWwMrAScGlZMjQMICJmA6sBU4AjgV1TSpeX+jwUEWsB/wbMk2hJkiRJUj019R6tlFIHcC+wbdWubYHb5j2Cx4CPUUwb7HxdAtxQaj8PLFB6za06dg6DY/EPSZIkSUNcsytaUNwbNTki7gFuBw4ExgMnA0TE2cC/UkqHppRmAg+XHxwRbwGklDq3d0TETcB/R8S7FFMHNwe+RLHCoSRJkiQNqKYnWimlCyJiCYqVBJelSKR2SCk9W+oynnmrUz3Zi2KBi3OB91EkWz+glLxJkiRJ0kCKlOZZc6LtlZ6lNXXq1KmMGTOm2cORJEmS1CTTpk1j7NixAGNTStN6e5z3LEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2ZaEmSJElSnZloSZIkSVKdmWhJkiRJUp2NaPYABrNp06Y1ewiSJEmSmqi/OUGklOo8lNYXEcsBLzR7HJIkSZIGjeVTSv/qbWcTrS5ERADjgLebPRZgUYqkb3kGx3jajde/ebz2zeO1bx6vffN47ZvL6988XvveWRSYkvqQPDl1sAulC9jrbHUgFTkfAG+nlJzL2GBe/+bx2jeP1755vPbN47VvLq9/83jte63P18bFMCRJkiSpzky0JEmSJKnOTLQGv1nAT0p/qvG8/s3jtW8er33zeO2bx2vfXF7/5vHaDxAXw5AkSZKkOrOiJUmSJEl1ZqIlSZIkSXVmoiVJkiRJdWaiJUmSJEl1ZqLVJBGxWURcGhFTIiJFxGeq9kdEHFHa/25E3BgRa1T1WTwiJkfE1NJrckQs1th30npqXfuIWCAifhERf4+I6aU+Z0fEuKpzPFM6tvz188a/m9bSi8/9mV1c1zuq+iwYEcdFxGul/0aXRMTyjX0nracX1776une+/r2sj5/7foiIQyPi7oh4OyJeiYiLI2K1qj49fq4jYnzpv+H0Ur9jI2JkY99Na+np2kfE+0rX/fGImBERz5Wu69iq83T1/8ZXG/+OWkcvP/c3dnFd/1DVx991+qEXn/2Vavzc372sn5/9+WCi1TyLAA8CX+9m//eA75T2rwu8BFwTEYuW9TkPWAvYvvRaC5g8UAMeQmpd+1HAOsBPS3/uBnwIuKSLvj8Gli17/ddADHaI6elzD3Alldd1h6r9xwC7AnsBmwCjgcsiYnjdRzu09HTtl6167Q8k4E9V/fzc993mwAnABsC2wAjg6ohYpKxPzc916c/LKf47blLq91ng1w16D62qp2s/rvT6N+BjwESKf09P7+Jc+1H52T9rIAc+BPTmcw9wKpXX9aCq/f6u0z89Xf/nmffn/uHAdOCKqnP52e+vlJKvJr8ofpn5TFkcwIvA98u2LQi8BRxUij9SOm79sj4blLat1uz31Cqv6mvfTZ91S/3Gl217Bjik2eNv5VdX1x44E7i4xjFjgQ5gz7Jt44A5wHbNfk+t8url5/5i4LqqbX7u63P9lyr9N9isFPf4uQY+VYrHlfXZC5gJjGn2e2qVV/W176bP7hTPExpRtq3H/2d89f3aAzcCx9Q4xt91BvD6d9HnfuD0qm1+9ufjZUVrcPoAsAxwdeeGlNIs4CZgo9KmDYGpKaU7y/rcAUwt66P6GEvxg+atqu3fj4jXI+KBiPiBU3jqZovSNId/RsSpEbF02b4JwAJU/r8xBXgYP/d1ExHvB3ak62/1/dzPv85paW+U/uzN53pD4OHS9k5XUXwJN2FARzu0VF/77vpMSynNrtp+fGnK5t0R8dWI8Heovunu2n+hdF3/ERG/qpq54+869VPzsx8REyiqhV393Pez308jmj0AdWmZ0p8vV21/GVixrM8rXRz7Stnxmk8RsRDwc+C8lNK0sl2/Be4D3gTWA46iSJC/3PBBDi1XAH8EnqW4nj8Fro+ICaUvG5YBOlJKb1Yd9zJ+7utpX+Bt4M9V2/3cz6eICOA3wN9SSg+XNvfmc70MVf8mpJTejIgO/Oz3SjfXvrrPEsCPgN9V7foRcB3wLrA1xZTNJXHqbK/UuPbnAk9T3B7xUYqfKR+nmOoG/q5TF7357AMHAI+mlG6r2u5nfz6YaA1uqSqOqm3V+7vqo36KiAWAP1DcyzipfF9K6eiy8KGIeBO4KCK+n1J6vYHDHFJSSheUhQ9HxD0USdeOzPtLfzk/9/W1P3BuSmlm+UY/93VxPLAmxX1WPfFnfn3VvPYRMYbiPrhHgJ+U70splf9S+UDxeys/xl82e6vLa59SOrUsfDgingDuiYh1Ukr3dXbr4nx+7vump8/+wsDnKb7crOBnf/5Y+hucXir9Wf1tzdLkbzRfAt7fxbFLMW8lTH1USrIupPi2ftuqalZXOlfGW2VAB9ZmUkovUiRaq5Y2vQSMjIjFq7qW/7+h+RARmwKrAaf1oruf+z6IiOOAnYEtU0ovlO3qzef6Jar+TSj1XwA/+z2qce079y9KsRDPO8CuKaX3ejjlHcCY0jRb1dDTta9yH/AelT/z/V1nPvTy+n+OYjGws3txSj/7fWCiNTh1ltE7S+eU7oPYHOgs6d4OjI2I9cr6rE8xB7e67Ks+KEuyVgW26eU39WuX/nxxwAbWhkrTeFYgX9d7Kf4RLv9/Y1mKKSd+7uvjAODelNKDvejr574XonA8xSqmW6WUnq7q0pvP9e3AR0vbO32SYtGGewdq7K2uF9e+s5J1NcWCJDtXV3K7sTbFQiTV9+6qpDfXvgtrUHx50Pkzxd91+qmP1/8A4JKU0qu9OLWf/T5w6mCTRMRoKr8F/kBErAW8kVJ6LiKOAQ4rldGfAA4DZlAsc0pK6dGIuBI4NSI6l0I9BbgspfR4w95IC6p17YEpwEUUS7vvBAyPiM5vkd9IKXVExIYUqx7dQHFD7rrA0RQ/pJ5r0NtoST1c+zeAIyiWE38RWAk4EngN+B+AlNLUiDgd+HVEvF465lfA34FrG/MuWlNPP3NKfcZQrLj23S6O93PffydQTMvZBXi77GfK1JTSu738XF9NMaVtchTPNntfqc+pvai4t7Oa175Uybqa4tv8fSi+qR9T6vNqSmlORHyaopp4O8V9KlsCPwNOKd07qq71dO1XBr4A/JXi5/zqFPf/3A/cCv6uM59qXv/OThGxCrAZ8z5KBT/7ddDsZQ/b9QVsQTG/uPp1Zml/UPzS+SLFNwc3AR+tOsf7gHOAaaXXOcBizX5vg/1V69pT/HLf1b4EbFE6fh2K0vlbFD94Hiv9txrV7Pc22F89XPuFKVZRe4Xim+VnS9tXqDrHQsBxwOsUXz5cWt3HV9+ufVmfA0vXdGwXx/u57/+17+5nysSyPj1+roHxwGWl/a+X+i/Y7Pc3mF89Xfsa/18kYKVSn+0pfvl/m+IZQ38HvkXZ8u+++nXtV6D43eZ1isrs/1IsuPO+qvP4u84AXP+yfkdSPFNrWBfn8LM/n68oXUhJkiRJUp14j5YkSZIk1ZmJliRJkiTVmYmWJEmSJNWZiZYkSZIk1ZmJliRJkiTVmYmWJEmSJNWZiZYkSZIk1ZmJliRJkiTVmYmWJKmtRcQzEXFIs8chSRpaTLQkSW0hIiZGxFtd7FoXOKUBf78JnSS1kRHNHoAkSc2UUnq12WPoi4gYmVLqaPY4JEm1WdGSJDVURNwYEcdGxC8j4o2IeCkijujlsWMj4pSIeCUipkXE9RHx8bL9H4+IGyLi7dL+eyPiExGxBXAGMDYiUul1ROmYikpTad9BEXFZRMyIiEcjYsOIWKU09ukRcXtErFx2zMoR8ZeIeDki3omIuyNim/L3DKwIHN3595ft+2xE/CMiZpXG8t2q9/xMRPwwIs6MiKnAqRExMiKOj4gXI2Jmqc+hffoPIUkaUCZakqRm2BeYDqwPfA/4cURsW+uAiAjgcmAZYAdgAnAfcF1EvK/U7VzgBYrpgBOAnwPvAbcBhwDTgGVLr1/V+Ot+BJwNrAU8BpwH/A44CvhEqc/xZf1HA38FtgHWBq4CLo2I8aX9u5XG9eOyv5+ImABcCPwB+BhwBPDTiJhYNZ5/Bx4uvaefAt8Edgb2AFYD9gGeqfF+JEkN5tRBSVIzPJRS+kmp/UREfB3YGrimxjFbUiQjS6eUZv1fe/cPYkcVxXH8+zMgRqOFBi0EjYUxahOwi0bEgEIq/xOwEHubiKCgiWJsZFEQLCxEt1IThAgWKkQLMVooCzEYdVVYKxPEKLo2xvVY3LvyeGZ3ozvsZuH7gcdj7ps79041HM6Z8/rYI0nuAO6hvWd1BTBRVV/NX3t+cs8GVVUdP4P9vVpVB/q8Z4FPgH1V9V4fe4GWIYN20SPAkZH5TyS5kxYMvVhVJ5PMAb+Nrf8w8H5V7evH00muowVWkyPnfVBV/wSGPYD7Bvioqgr4/gzuSZK0gsxoSZJWw+djxz8Aly4x5wZa5uinXp43m2QWuAqYL+N7Hng5yaEkj42W9y1jfyf699GxsfOSXASQ5IJeCnksyS99X1togd9irgUOj40dBq5Osm5k7LOxcyZp2bavexnmbUvekSRpRRloSZJWw6mx42LpZ9I5tIBs69jnGmACoKqeAq6nlRjeChzrmaXl7K8WGZvf8wRwN/A4sL3v6yhw7hLrZORao2Pjfh89qKopWoC5B1gPHEjy5hJrSZJWkKWDkqS1Yor2ftafVTWz0ElVNQ1M0xpPvA48CBwE/gDWLTRvmbYDk1V1ECDJBmDT2DmnW/8YcNPY2DZguqrmFluwqn4F9gP7e5D1bpKLq+rk/7sFSdKQzGhJktaKQ7R3pd5KcnuSTUm2JXmmdxZc3zvx3ZLkyiQ30ppifNnnzwAbkuxIsjHJ+QPu7VvgriRbexfE1/j3M3YGuDnJ5Uk29rHngB1J9iTZnOQB4CEWb9RBkt1JdiXZkmQzcC9wHDjd/4RJklaBgZYkaU3oTR92Ah8Cr9CyVm/QMkcngDngElq3wGlaN793gCf7/I+Bl2hZoB9p3Q6Hshv4mdbd8G1a18GpsXP29r1+19efLwG8D9hF6yr4NLC3qiaXWG8WeJT27tan/bo7q+qvZd+JJGkQac8tSZIkSdJQzGhJkiRJ0sAMtCRJZ4Uk94+2bR/7fLHa+5Mk6b+wdFCSdFZIciFw2QI/n6oq/5RXkrRmGGhJkiSErcWXAAAAQElEQVRJ0sAsHZQkSZKkgRloSZIkSdLADLQkSZIkaWAGWpIkSZI0MAMtSZIkSRqYgZYkSZIkDcxAS5IkSZIG9jds7qseRPjGCAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ab2c35fef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('my_preds4_2_3_699.csv')\n",
    "\n",
    "cvresult = cvresult.iloc[100:]\n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(100,cvresult.shape[0]+100)\n",
    "        \n",
    "fig = pyplot.figure(figsize=(10, 10), dpi=100)\n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators_detail4_2_3_699.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "n_estimators在285时停止"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
